Elasticsearch6 搜索,ik 分词器关于数字的问题
构建索引时,对“productName”字段搜索使用ik_smart分词器,存储使用ik_max_word分词器,如下所示:
"productName" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart"
},
因为ik分词器对于数字分词处理有点问题:
- 现在索引中存储有“测试1分”这个产品,ik_max_word分词器存储的时候分为了“测试”、“分”两个词语;
- 而搜索“1分”的时候,ik_smart分词器将其分成了“1分”一个词语;
所以说“1分”去匹配“分”匹配不到,结果为空(使用的match)。
这种ik分词器对于数字的处理该如何解决?疑惑已久了QAQ求助大佬们
PS:之前还有个搜索纯数字的问题,现在直接让搜纯数字的时候走正则匹配了。但是这种
-
技术
-
elasticsearch
-
Q&A
把里面的数字提取出来,单独走一遍搜索呢?