elasticsearch - Elasticsearch-仅在存在所有给定术语的情况下才返回文档

标签 elasticsearch

假设我有一个名为message的字段。该字段将包含一个句子。
另外,我有一系列术语。该数组将包含多个单词。
就像是,

"query": {
                "bool": {
                  "must": [
                    {
                      "terms": {
                        "message": [
                          "domain",
                          "rejected"
                        ],
                        "boost": 1
                      }
                    }
                  ]
                }

假设我只想返回domainrejected都必须存在的那些文档,而不管它们在句子中的顺序如何。查询应该是什么样的?

最佳答案

您应该能够利用 intervals query实现所需的功能,如下所示:

{
  "query": {
    "intervals": {
      "message": {
        "match": {
          "query": "domain rejected",
          "max_gaps": -1,
          "ordered": false
        }
      }
    }
  }
}

该查询基本上是这样的:

within the message field, find the terms domain and rejected in no particular order and no particular proximity

关于elasticsearch - Elasticsearch-仅在存在所有给定术语的情况下才返回文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60293501/

相关文章:

node.js - 如何将 postman 中的 include_type_name 设置为 true

php - 根据用户输入的值进行 Elasticsearch 排序

python - 无法使用Python Elasticsearch Client解析主机

ruby-on-rails - 如何使ElasticSearch Client在整个应用程序中可用?

elasticsearch - elasticsearch-输入时进行搜索-每个建议的单词仅返回一次

node.js - 连接到Elasticsearch的NodeJ

elasticsearch - 如何访问logstash元数据事件的单个字段?

elasticsearch - Logstash 和 Elastic 升级

windows - 在Logstash安装期间无法找到jruby

java - 将纪元以来的毫秒数转换为 1582 年之前的日历日期时出现问题