一 、前言
之前的系统由于一些表的数据已经达到1~2百万行的数据了,而且还在与日俱增,一些条件比较复杂的检索,已经明显感觉到比较慢,影响用户的使用体验。所以引入的ElasiticSearch进行检索优化,效果还是比较好的。因为之前都没有怎么涉及到模糊检索这一块需求,只是为了速度引入了ES。更之前的认知,是知道引入ik分词器之后能对中文进行很好的分词,也进行过相关的模糊检索都没有出现问题。
二、问题
直到有个业务需要对电话号码进行模糊检索,发现只能精准检索,通过
@Field(type = FieldType.Long,analyzer="simple")
@Field(type = FieldType.Text,analyzer="simple")
非字母分词也还是不能检索出来。
之后还有对字母+数字的字段模糊检索的需求,更是没有办法实现。
三、解决思路
-
首先想到的思路是,之前数据录入ES的时候,都是以Json的形式。文章来源:https://www.toymoban.com/news/detail-599638.html
bulkRequest.add(new IndexRequest("apply_car").source(JSONUtil.toJsonStr(ocApplyCars.get(j)), XContentType.JSON));
所以觉得是不是因为字符串不能数字分词的原因,所以尝试着在网上找到了,文章来源地址https://www.toymoban.com/news/detail-599638.html
到了这里,关于ElasticSearch关于自定义分词器模糊检索数字+字母的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!