ElasticSearch 集成查询 BoolQueryBuilder 使用汇总
BoolQueryBuilder
创建查询对象
BoolQueryBuilder bool = new BoolQueryBuilder();
匹配数据
精准匹配
完全匹配一个值
bool.must(QueryBuilders.termQuery(key, value));
完全匹配多个值
bool.must(QueryBuilders.termsQuery(key, value1, value2, value3));
包含匹配
bool.must(QueryBuilders.matchPhraseQuery(key, value));
- 使用 matchQuery 时,在执行查询时,搜索的词会被分词器分词。
- 使用 matchPhraseQuery 时,不会被分词器分词,而是直接以一个短语的形式查询。
应该 (should) 匹配
should:代表可选满足的查询条件,类似于 “或” 的关系。
例如,查询文档中同时包含关键词 “Elasticsearch” 和 “Java”,或者包含关键词 “Elastic”,可以使用如下查询:
bo.should(QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("title", "Elasticsearch"))
.must(QueryBuilders.matchQuery("content", "search")));
过滤 (filter) 匹配
相关文章