定制分化词,同义词

定制分化词步骤:

config目录下新增new_word.dic 加入凯悦,修改IKAnalyzer.cfg.xml,加入new_word.dic
copy到其他两个节点
重启es
GET _analyze?pretty
{
"analyzer": "ik_max_word",
"text":"xx"
} G
ET _analyze?pretty
{
"analyzer": "ik_smart",
"text":"xx"

(此处可以发现xx会被分析为一个单独的词汇)


扩展:若需要不重启es动态更新则可将自定义辞典放到http服务器上,例如
<entry key="ext_dict">http://yoursite.com/getCustomDict</entry>
http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取
的分词进而更新词库。
http 请求返回的内容格式是一行一个分词,换行符用
即可。
满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。
ik每隔一分钟去检测



同义词:

对于苹果 和 手机可以人为理解为一个东西:

/opt/elasticsearch-7.6.1/config/analysis-ik 插件目录下创建同义词文本 synomyms.txt(苹果手机),重新建立索引结构表(原有的索引需要删除),进行重新导入数据索引同义词效果就生效了,完整语句下次补上,kibana不知道为什么隔了一天历史记录不见了

重塑相关性

相关性搜索

让搜索引擎理解语义

影响召回以及语义

通过bool的should里面嵌套 词汇和id进行绑定达到id=2(酒店的东西或者包含住宿的条目都给返回)

 召回策略和排序策略一般不会同时使用。因为你召回指定了所有的酒店,在function中再去过滤排序酒店也就无意义了。一般是排序策略做法没结果就使用召回策略尽量提高召回的覆盖面,争取搜索到尽量多答案

猜你喜欢

转载自www.cnblogs.com/yaohaitao/p/12701751.html