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

时间:2017-10-02 09:36:41

标签: elasticsearch lucene

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

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

例如数据:

{"id": 1, "field_1": "foo", "field_2": "foo"}
{"id": 2, "field_1": "foo", "field_2": "bar"}

当我执行此类查询时,我希望只获取ID为1的记录,因为field_1 === field_2

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您可以使用query string之外的其他查询,那么script query

怎么办?

来自https://www.elastic.co/guide/en/elasticsearch/reference/5.5/query-dsl-script-query.html

GET /_search
{
    "query": {
        "bool" : {
            "must" : {
                "script" : {
                    "script" : {
                        "inline": "doc['field_1'].value == doc['field_2'].value"
                     }
                }
            }
        }
    }
}