某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来。
举例:
title=公路局正在治理解放大道路面积水问题。
输入关键词:道路,能否搜索到这个document呢?
实际应用中可能需要:
1)检索关键词”理解”、”解放”、”道路”、“理解放大”,都能搜出这篇文档。
2)单个的字拆分“治”、“水”太多干扰,不要被检索出来。
3)待检索的词不在词典中,也必须要查到。
4)待检索词只要在原文title或content中出现,都要检索到。
5)检索要快,要摒弃wildcard模糊匹配性能问题。
问题分析
常用的stand标准分词,可以满足要求1)、3)、4)、5)。
标准分词器是什么鬼?
标准分析仪是默认分析仪,如果没有指定,则默认使用该分词器。 它提供了基于语法的标记,并且适用于大多数语言。
对于中文字符串,会逐个汉字分词。
标准分词器的结果如下:
GET /ik_index/_analyze?analyzer=standard { "text":"公路局正在治理解放大道路面积水问题" } 公,路,局,正,在,治,理,解,放,大,道,路,面,积,水,问,题
但,会出现冗余数据非常多。
针对要求2),排除match检索,排除stand分词。
针对要求5),排除wildcard模糊检索。&nbs