java api 英文无法模糊匹配

作者 elastic_kevin123 | 发布于2017年07月24日 | 阅读数:1869

final BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();

        queryBuilder

                .must(QueryBuilders.multiMatchQuery(criteria.getKeywords(), "address","brand","nameStore" ));
输入中文能模糊匹配搜索,但是输入英文时候只能全拼搜索例如我输入"test" 没有结果 ,输入全部"test01"可以以匹配到,请问大牛这是sm问题?
已邀请:
在我理解是,Es 有一个默认anylazer 的,如果你定义index 的时候,用到的是ik 中文分词器,name,如果输入test,  分词器会默认地把test 就解析成test , 和test01 是两个不同的词,所以是不匹配的。
 
另外,如果需要对一个英文字符串,比如mysql 进行查询的话,建议用n-gram 的方法,
详情见如下官网。链接:(最近做项目也遇到这种情况,参考着这个官方的文档中文文档来弄好的。)
https://www.elastic.co/guide/c ... .html

xsq5112 - 90后编程爱好者

赞同来自:

字段属性要设置成分词

要回复问题请先登录注册