2016-09-14 89 views
0

我有一個查詢可以從Elastic Search Cluster中搜索provider_id。我正在使用下面的查詢來獲得單個provider_id的結果,但需要幫助弄清楚如何傳遞提供者列表。如何在彈性搜索查詢中傳遞特定字段的值列表

{ 
"query": { 
    "bool": { 
     "must": [{ 
      "match": { 
       "message.provider_id": { 
        "query": 943523, 
        "type": "phrase" 
       } 
      } 
     }] 
    } 
} 
} 

假設我想搜索provider_ids = [913523, 923523, 923523, 933523, 953523]那麼我該如何修改查詢?

回答

1

,你可以爲not_analyzed然後用術語查詢索引的PROVIDER_ID:

POST /test_index/_search 
{ 
    "query": { 
     "terms": { 
      "message.provider_id": [ 
       "913523", "923523", "923523", "933523", "953523" 
      ] 
     } 
    } 
} 

或作爲一個過濾器,如果你不打算需要得分佈爾查詢:

POST /test_index/_search 
{ 
    "query": { 
     "bool": { 
     "filter": [ 
      { 
       "terms": { 
        "message.provider_id": [ 
         "913523", "923523", "923523", "933523", "953523" 
        ] 
       } 
      } 
     ] 
     } 
    } 
}