如何使用Spring Data Elasticsearch使用OR逻辑为Elasticsearch创建复杂查询?

问题描述 投票:0回答:2

我正在寻找最佳方法,以使用Java的OR逻辑对Elasticsearch进行复杂查询。我真的需要类似[[(((A和B)或(C和D)或(E和F和G))。

现在我使用ElasticsearchTemplate和org.springframework.data.elasticsearch.core.query.Criteria.class。但是我无法在一个查询中实现OR逻辑,因此我不得不对Elasticsearch进行单独的请求:一个用于(A和B),一个用于(C和D),依此类推...
java elasticsearch spring-data-elasticsearch
2个回答
0
投票
elasticSearch中的AND是必须OR或应该是,并且您也必须获得AND AND的MustNot

您可以通过bool查询将其连接起来,例如此示例https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html


0
投票
您可以使用布尔查询来为OR和AND查询建模:

在您的示例中为:

boolQuery().should(boolQuery().must(A).must(B)) .should(boolQuery().must(C).must(D)) .should(boolQuery().must(E).must(F).must(G));

© www.soinside.com 2019 - 2024. All rights reserved.