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"
        }
      }
    }
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM