es的同义词搜索功能通过自定义分析器实现
我们知道 一个 分析器 就是在一个包里面组合了三种函数的一个包装器, 三种函数按照顺序被执行:
- char_filter 如:emoticons, html_strip等
- tokenizer 如:standard, ik_smart等
- filter 如:lowercase,english_stop等
char_filter 用于分词前对原搜索的句子进行处理 tokenizer 用于将搜索的句子分成多个词组 filter 用于处理tokenizer输出的词组,比如删除某些词,修改某些词,增加某些词
实现同义词搜索的原理是,自定义filter,处理tokenizer输出的待搜索词组时,取出其中词的同义词,加入到待搜索的词组中。
创建分析器:
PUT /synonym
{
"settings": {
"analysis": {
&#