簡體   English   中英

在布爾中使用OR運算符的彈性搜索查詢

[英]Elastic Search Query using an OR operator inside a bool

我需要構建一個簡單的查詢,將其轉換為條件,因為“年齡”在40至60之間,“國家”在US或IN中。 我正在尋找使用布爾運算符的解決方案。

我嘗試了以下選項:

    "bool": {
        "must": [
           {
               "range": {
                  "age": {
                     "from": 40,
                     "to": 60
                  }
               }
           },
           {
               "terms": {
                  "country": [
                     "US",
                     "IN"
                  ]
               }
            }
        ]
    }

但是這個查詢沒有給我任何結果。 我在這里想念什么嗎?

謝謝! ķ

您的查詢看起來不錯。 我認為您的查詢無法正常工作的唯一原因是,“ coutry”字段使用的是默認分析器,該術語使用小寫並存儲在索引中。 如果您對以下查詢獲得了預期的結果,我的猜想是正確的。 要解決此問題,您可以將查詢更改為我在下面提到的查詢,也可以更改映射以使“國家”字段不被分析。

"bool": {
    "must": [
       {
           "range": {
              "age": {
                 "from": 40,
                 "to": 60
              }
           }
       },
       {
           "terms": {
              "country": [
                 "us",    <---- Note that I'm using lower-cased terms
                 "in"     <---- Note that I'm using lower-cased terms
              ]
           }
        }
    ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM