弹性搜索查询以获取多个关键字的结果(即国家/地区名称)

时间:2018-03-07 07:48:56

标签: elasticsearch

Key String就像

“印度,新加坡”没有引号。

如何拆分和搜索关键字

预期结果将与印度或新加坡的国家相匹配。

到目前为止我试过..

{
  "_source": "country_name",
  "query": {
    "bool": {
      "must": [
        {
          "term": {
             "country_name.keyword": "india,singapore"
          }
        }
      ],
      "must_not": [],
      "should": []
     }
  },
  "from": 0,
  "size": 10,
  "sort": [],
  "aggs": {}
}

但它只显示那些内容与确切的关键字符串“india,singapore”匹配

1 个答案:

答案 0 :(得分:1)

您可以使用条款查询代替 term 查询,如下所示:

{
  "_source": "country_name",
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
             "country_name.keyword": ["india","singapore"]
          }
        }
      ]
     }
  },
  "from": 0,
  "size": 10
}