查询一个字段不等于elasticsearch中的另一个字段

Dar*_*rby 13 elasticsearch

如何查询或过滤一个字段不等于另一个字段?即,document1.city1.name不等于document1.city2.name.

有些版本吗? http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-script-fields.html

Vin*_*han 15

是的,您需要使用脚本过滤器来实现此目的

{
  "bool": {
    "filter": {
      "script": {
        "script": "doc['field1'].value !=  doc['field2'].value"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

  • @chefarov - 过滤查询在更高版本中被删除,使用脚本查询 - https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-query.html (2认同)