当前位置: 首页 > 面试题库 >

ElasticSearch,与过滤器多重匹配?

哈骞仕
2023-03-14
问题内容

我在ES中有一个多匹配查询,并希望添加一个过滤器。

{
  "multi_match" : {
    "query" : "this is a test",
    "fields" : [ "subject^2", "message" ]
  }
}

添加此过滤器的语法是什么?

我试过了:

{
  "multi_match" => {
    "query" => "list",
    "fields" => [ "username" ]

  },
"filter" => {
        "term" => { "username" => "slimkicker"}
    }
}

问题答案:

根据您的需要,必须将过滤器放置在正确的位置。您有两种选择:

使用顶级过滤器,并将该过滤器仅应用于搜索结果,而不应用于各个方面

{
    "query" : {
        "multi_match" : {
            "query" : "this is a test",
            "fields" : [ "subject^2", "message" ]
        }
    },
    "filter" : {
        "term" : { "username": "slimkicker" }
    }
}

使用过滤的查询,并将过滤器应用于搜索结果和构面

{
    "query" : {
        "filtered" : {
            "query" : {
                "multi_match" : {
                    "query" : "this is a test",
                    "fields" : [ "subject^2", "message" ]
                }
            },
            "filter" : {
                "term" : { "username": "slimkicker" }
            }
        }
    }
}


 类似资料:
  • 我在ES中有一个多匹配查询,希望添加一个过滤器。 添加此筛选器的语法是什么? 我试过:

  • 问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的

  • 我不熟悉Elasticsearch和Nest,请原谅我的无知。我想在Elasticsearch v2.3.5中使用过滤器和multi\u匹配查询,但到目前为止,我还无法解决这个问题。我想,一旦我把它用于Elasticsearch,我应该能够将它映射到Nest。 以下是我的JSON数据结构: 下面是我的工作搜索查询(没有任何过滤器): 我只想在搜索结果中向用户显示这些记录,其中: 我尝试了不同的查询

  • 我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与

  • 问题内容: 我正在尝试建立一个查询,该查询将找到所有用户文档(docType =用户),然后根据许多过滤器对其进行过滤。例如位置,性别,年龄等。过滤器是根据我正在构建的搜索功能上的用户输入来添加/删除的。 以下没有结果: 以下返回结果: 后者虽然返回结果,但从长远来看是行不通的,因为我可能想为年龄,性别等添加一个额外的过滤器,而且我似乎无法添加多个字段。如果我删除位置过滤器,则第一个查询有效。 问

  • 如何使此过滤器在同一文本中的多个匹配项上工作? 这是返回链接的函数 使用筛选器的示例文本: Ut[点击这里|节点: 4]enim ad minim veniam,quis[点击这里|术语: 42]nostr的练习ullamco的劳动是新的和其他的结果。Duis ate irure Dolor in re的谴责在流言蜚语velit esse cilum[点击这里|术语: 1]Dolore eu fu