java - Elasticsearch 2+ JAVA API 或过滤器

标签 java elasticsearch filtering

我正在尝试编写一些 Java 代码来查询 ES5 实例。在 ES1 中,您可以使用 OR 和 AND 过滤器、orFilter 和 andFilter。 ES5 中的等价物是什么?我已经尝试过 -

QueryBuilder fb1 = QueryBuilders.termQuery("term1", "value1");
QueryBuilder fb2 = QueryBuilders.termQuery("term1", "value2");
QueryBuilder fb3 = QueryBuilders.termQuery("term2", "value3");

QueryBuilder fb = QueryBuilders.boolQuery()
                        .must(fb1)
                        .should(fb2)

This gives results that match fb1, so this is not an OR

QueryBuilder fb = QueryBuilders.boolQuery()
                        .must(fb1)
                        .must(fb2)

This gives no results, so the AND worked.

我想找出构建 AND、OR 查询的方法

最佳答案

为了进行 AND 查询,请将所有条件放入“must”。

QueryBuilder fb = QueryBuilders.boolQuery().must(fb1).must(fb2);

为了进行 OR 查询,请将所有条件放入“should”中。

QueryBuilder fb = QueryBuilders.boolQuery().should(fb1).should(fb2);

关于java - Elasticsearch 2+ JAVA API 或过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42706487/

相关文章:

cluster-computing - ES群集可以包含多少个节点?最大数量

java - 按钮似乎被视频覆盖

java - Hibernate - 学生评分系统。需要注释方面的帮助

java - 如何强制在 Maven 测试目标期间运行的 testNG 测试超时?

apache - Apache Nifi PutElasticsearch可以永远等待填充批处理大小吗?

php - 否认登记表上的脏话

用于增加堆大小的 java Xms 命令无法正常工作

elasticsearch - 如何使用RestHighLevelClinet在Elasticsearch 6中初始化现有索引

javascript - JSON 按名称分组然后显示最新记录

java - 集合的通用类型子集合