2017-04-11 99 views
0

我有哪些運作良好,足以單獨查詢鮮明:ElasticSearch查詢DSL合併條款和通配符

{"wildcard":{"city":"*Beach*"}} {"terms":{"state":["Florida","Georgia"]}}

而是試圖將它們組合成一個查詢被證明是相當的挑戰。

我曾以爲只是做{{"wildcard":{"city":"*Beach*"}},{"terms":{"state":["Florida","Georgia"]}}}會做到這一點,但事實並非如此。所以然後我嘗試了幾個不同的迭代使用數組,和布爾查詢等。有人可以指出我在正確的方向嗎?

回答

2

Bool query應該是正確的路要走。

以下是爲您的使用情況的一個例子:

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "wildcard": { "city": "*Beach*" } 
     }, 
     { 
      "terms": { 
      "state": [ "Florida", "Georgia" ] 
      } 
     } 
     ] 
    } 
    } 
} 

如果沒有結果,則意味着沒有項目相匹配兩者的標準。

+0

啊,這是工作。爲什麼只是將兩個工作哈希合併爲一個更大的哈希值沒有任何理由不起作用? – PamB

+0

很高興聽到它的工作。您的語法不起作用,因爲它不是Elasticsearch支持的有效DSL。 –