Py学习  »  Elasticsearch

elasticsearch termquery在id字段中查找子字符串

Martin Čuka • 4 年前 • 295 次点击  

在ElasticSearch中,我有这样的数据:

_编号:14133095
_ ID:54646546_操作

我想找到所有包含IMP的ID。

这是我的地图

@Id
private String id;

这是我的查询

QueryBuilder query = QueryBuilders.boolQuery()
                .must(QueryBuilders.termsQuery("_id", "imp"))
                .must(QueryBuilders.termsQuery("sourceSystem", "smart"))
                .must(QueryBuilders.termsQuery("taskStatus", BpmConstants.ACTIVE_STATES.stream().map(Enum::name).collect(Collectors.toList())));

问题在于first must子句。没有它会发现很多记录(包括那些没有IMP的记录)。我还希望只按包含IMP的记录筛选记录。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37968
 
295 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Peeyush
Reply   •   1 楼
Peeyush    5 年前

Term ElasticSearch中的查询完全匹配,因此IMP将不匹配14133095_IMP。您需要使用 match 进行全文搜索的查询。 有关这些查询的更多信息,请访问

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html