ElasticSearchフィルタクエリ

問い合わせを学習する前に、私はデータを準備し、古いルールでした

#Filter查询
#filter是不计算相关性的,同时可以cache.因此,filter速度要快于query.
POST /lib5/items/_bulk
{"index":{"_id": 1}}
{"price": 40,"itemID": "ID100123"}
{"index":{"_id": 2}}
{"price": 50,"itemID": "ID100124"}
{"index":{"_id": 3}}
{"price": 25,"itemID": "ID100124"}
{"index":{"_id": 4}}
{"price": 30,"itemID": "ID100125"}
{"index":{"_id":5}}
{"price": null, "itemID": "ID100127"}

 

 

クエリの価格(40フィルタデータの価格)40

25と40の空室検索

 注意:

私たちは、私は、ダイナミックマッピングを使用し、データを追加する要求を投稿し、自動的に作成されたマッピング、我々はマッピングを見ることができます

注:私たちは、アイテムIDタイプのテキストを見て、言葉が「ID100123」大文字が「id100123」を小文字に変換されるとき、テキストは、単語のデフォルトのタイプです

私たちは、小文字を変更しようとし、以下のようにOKであることが判明:         

 

クエリ:

####2.8.1简单的过滤查询
#term
GET /lib5/items/_search
{ 
  "post_filter":{
    "term":{ "price":40}
  }
} 

#terms
GET /lib5/items/_search
{
  "post_filter":{
    "terms":{ "price": [25,40]}
  }  
}

GET /lib5/items/_search
{
  "post_filter":{
    "term": { "itemID": "ID100123"}
  } 
}
GET /lib5/items/_search
{
  "query": {
    "bool": {
      "filter": [{ "term": { "price": 40}}]
    }
  }
}

GET /lib5/items/_search
{
  "query": {
    "bool": {
      "filter": [{ 
        "terms": { "price": [25,40] }
      }]
    }
  }
}

GET /lib5/items/_search
{
  "query": {
    "bool": {
      "filter": [{
        "term": { "itemID":"5100123" }
      }]
    }
  }
}

 

298元記事公開 ウォンの賞賛107 ビューに14万+を

おすすめ

転載: blog.csdn.net/ywl470812087/article/details/105013351