一尘不染

字段之间的elasticsearch比较

elasticsearch

假设我有包含以下字段的文档: {field1, field2, ... fieldn}

我需要运行一些查询,其中某些条件将需要在两个或多个字段之间进行比较。喜欢fieldX = fieldY

在标准SQL中,一个示例可能是:

SELECT * FROM Table1 WHERE farePrice>100 AND originRegion = destinationRegion

我正在阅读一些文档,看起来“脚本”可能是实现此目的的唯一方法?还是还有其他选择?


阅读 900

收藏
2020-06-22

共1个答案

一尘不染

您可以使用脚本过滤器-

{
  "filtered": {
    "query": {
      "range": {
        "farePrice": {
          "gt": 100
        }
      }
    },
    "filter": {
      "script": {
        "script": "doc['originRegion'].value ==  doc['destinationRegion'].value"
      }
    }
  }
}

您可以在此处此处找到更多信息。

2020-06-22