Elasticsearch查询将两个不同的字段与精确值匹配

时间:2018-04-14 00:01:53

标签: elasticsearch boolean

我想找到我的elasticsearch索引中的记录,它应该匹配字段“connectorSpecific.hostname.keyword”,值为“tyco-fire.com”,字段“hasForms”,值为true。

以下是我的弹性搜索查询:

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

此查询返回的记录也包含值为“hasForms”的字段,其值为false。不知道为什么。我正在使用布尔值查询。感谢任何帮助

1 个答案:

答案 0 :(得分:2)

如果您希望两个约束匹配,那么您应该使用bool/filter(或bool/must也可以正常工作,但由于您正在进行精确匹配,因此您根本不需要评分,像这样:

GET index1/_search
{ 
  "query": {
    "bool": {
      "filter": [
        { "match": { "connectorSpecific.hostname.keyword":  "tyco-fire.com" }},
        { "match": { "hasForms": true   }}
      ]
    }
  }
}