elasticsearch 查询字符串查询-两个字段必须匹配,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 查询字符串查询-两个字段必须匹配,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 查询字符串查询-两个字段必须匹配

elasticsearch 查询字符串查询-两个字段必须匹配,elasticsearch,lucene,elasticsearch,Lucene,我正在使用ElasticSearch 5.1,我想知道是否有可能构建查询字符串查询,它将匹配所有字段field_1和field_2相同的记录 在执行查询时,我不知道它们存储了什么值。我所知道的只是映射,它是关键字 例如,数据: {"id": 1, "field_1": "foo", "field_2": "foo"} {"id": 2, "field_1": "foo", "field_2": "bar"} 当我执行这样的查询时,我只想得到id为1的记录,因为field\u 1===field

我正在使用ElasticSearch 5.1,我想知道是否有可能构建查询字符串查询,它将匹配所有字段
field_1
field_2
相同的记录

在执行查询时,我不知道它们存储了什么值。我所知道的只是映射,它是
关键字

例如,数据:

{"id": 1, "field_1": "foo", "field_2": "foo"}
{"id": 2, "field_1": "foo", "field_2": "bar"}
当我执行这样的查询时,我只想得到id为1的记录,因为
field\u 1
===
field\u 2


谢谢

如果您可以使用除
查询字符串
之外的其他查询,那么
脚本查询


如果您可以使用除
查询字符串
之外的其他查询,那么
脚本查询


是否可以为另一个包含信息的布尔字段编制索引(即,如果字段匹配则为true,否则为false)?或者你有太多的字段组合要检查吗?我只需要检查2个字段,但这需要经常更新。看起来是个解决办法。谢谢。当您更新一个或另一个字段时,您还可以更新布尔标志。如果没有这一点,您将不得不求助于使用性能差得多的脚本查询。请检查是否可以为另一个包含信息的布尔字段编制索引(即,如果字段匹配则为true,否则为false)?或者你有太多的字段组合要检查吗?我只需要检查2个字段,但这需要经常更新。看起来是个解决办法。谢谢。当您更新一个或另一个字段时,您还可以更新布尔标志。否则,您将不得不求助于使用性能和优化程度都要低得多的脚本查询。请检查
GET /_search
{
    "query": {
        "bool" : {
            "must" : {
                "script" : {
                    "script" : {
                        "inline": "doc['field_1'].value == doc['field_2'].value"
                     }
                }
            }
        }
    }
}