elasticsearch - 匹配字段1大于字段2的文档

标签 elasticsearch

doc1 = {
    "field1": 34,
    "field2": 15
}
doc2 = {
    "field1": 12,
    "field2": 46
}

如何匹配字段1大于字段2的所有文档。
也就是说,在上述情况下,搜索将仅导致doc1的匹配。

最佳答案

您可以使用 script filter来直接比较字段。

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc.field1.value > doc.field2.value"
        }
      }
    }
  }
}

请注意,为了使其正常工作,您需要enable dynamic scripting

关于elasticsearch - 匹配字段1大于字段2的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951570/

相关文章:

linux - 配置ELK堆栈

elasticsearch - 在 Kibana 中搜索字符串

amazon-web-services - 为外部客户端连接设置 Cassandra listen_address 时如何避免将弹性 IP 转换为私有(private) IP?

search - 为我的网站构建/设计搜索引擎的推荐方法

elasticsearch - Logstash集群输出到没有多播的Elasticsearch集群

java - Elasticsearch 查询没有给出完全匹配

search - 上下文建议的索引,例如使用Elasticsearch的Flipkart,亚马逊

elasticsearch - 根据类别不同的​​领域

elasticsearch - 用于 Elasticsearch 的自定义语言提取器

elasticsearch - ElasticSearch查询:从ElasticSearch中的每个记录获取 `key`并返回唯一值的集合