ANDing弹性搜索的搜索关键字

时间:2018-09-20 14:18:58

标签: elasticsearch

我们如何配置弹性搜索,使其仅返回与搜索查询中所有单词匹配的结果。被索引的文档具有包含多个字段的数据,因此搜索查询的单词可能与数据的不同字段匹配,但所有单词必须在结果中匹配?

2 个答案:

答案 0 :(得分:0)

您可以query string query功能来搜索结果

样本搜索查询

GET /_search
{
    "query": {
        "query_string": {
            "query": "(content:this OR name:this) AND (content:that OR name:that)"
        }
    }
}

在此查询中,内容名称是字段名称,是搜索条件

您可以构建与此类似的搜索查询。

答案 1 :(得分:0)

我认为您正在与multi_match运算符一起寻找and查询。这是文档的链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html,看来cross_fields是您要查找的查询类型。我会在该页面上阅读更多内容,但这可能是您要查找的内容:

GET /_search
{
  "query": {
    "multi_match" : {
      "query":      "Will Smith",
      "type":       "cross_fields",
      "fields":     [ "first_name", "last_name" ],
      "operator":   "and"
    }
  }
}