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

标签 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
谢谢!

最佳答案

如果您可以使用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"
                     }
                }
            }
        }
    }
}

关于elasticsearch - 查询字符串查询-两个字段必须匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523012/

相关文章:

amazon-web-services - 如何配置 Winlogbeat 连接到 AWS elasticsearch

c# - Solr MoreLikeThis/mlt 处理程序返回 404 错误

python - 从我的电脑访问 Heroku Bonsai 上的 elasticsearch

java - 按 Instant 范围分面 hibernate 搜索结果失败

java - 如何在 Lucene 7.x 中使用 CustomScoreQuery

java - Lucene 区分大小写和不区分大小写的搜索

java - Lucene 3.4 覆盖索引中的文档

java - ElasticSearch 占用 100% CPU

elasticsearch - Elasticsearch面数不一致

jdbc - jprante elasticsearch jdbc river 更改日期值