ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

ElasticSearch 系列文章

1 ES 入门之一 安装ElasticSearcha

2 ES 记录之如何创建一个索引映射

3 ElasticSearch 学习记录之Text keyword 两种基本类型区别

4 ES 入门记录之 match和term查询的区别

5 ElasticSearch 学习记录之ES几种常见的聚合操作

6 ElasticSearch 学习记录之父子结构的查询

7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

8 ElasticSearch 学习记录之ES高亮搜索

9 ElasticSearch 学习记录之ES短语匹配基本用法

10 ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

11 ElasticSearch 学习记录之集群分片内部原理

12 ElasticSearch 学习记录之ES如何操作Lucene段

13 ElasticSearch 学习记录之如任何设计可扩容的索引结构

14 ElasticSearch之 控制相关度原理讲解

ES添加排序

在默认的情况下,ES 是根据文档的得分score来进行文档额排序的。但是自己可以根据自己的针对一些字段进行排序。就像下面的查询脚本一样。下面的这个查询是根据productid这个值进行排序的,而且进行了双字段的排序。当productid 相同时的文档是根据下面的那个排序字段进行的排序

POST /product/_search
{
"query": {
"bool": {
"filter": {
"term": {
"productSource": "2"
}
}
}
},
"sort": [
{
"productId": {
"order": "desc"
}
},
{
"_score":{
"order": "desc"
}
}
]
}
ES missing 和existing字段
missing字段的查询是查那些不存在的字段的数据

POST /product/_search
{
"query": {
"bool": {
"filter": {
"missing": {
"field": "weight"
}
}
}
}
} existing是查询那些已经存在字段的数据
POST /product/_search
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "weight"
}
}
}
}
}
上一篇:Es查询结果集默认是10000,更新设置


下一篇:ArrayList底层实现原理