赞
踩
今天在遇到es查询的时候,遇到了难点,花了半天才发现问题原因。
需求是:es实现模糊查询。相当于sql中的like %像%一样。但是在开发过程中,我使用了各种分词,各种查询代码,总是实现不了。
比如:我查询切片面包可以查询出来,但是我查询切面包就查询不出来。
原因是es默认采用了分词机制,导致我查询的时候,切面包没有放在一个分词中,查询不到。
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", name);
// Iterable<Commodity> iterable = commodityRepository.search(matchQueryBuilder);
// Iterable<Commodity> iterable = commodityRepository.search(matchQueryBuilder);
// iterable.forEach(e->list.add(e));
查询资料后,我测试下面的代码:
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("name", "*" name "*");
Iterable<Commodity> iterable = c
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。