ElasticSearch(7)

定制化中文分词器

对于搜索引擎来说,很多词都属于专有名字,比如凯悦,这是一个品牌,而对于分词器来说并不知道,所以对于凯悦的分词会是把两个字分开:

因此,我们需要定制分词词库。


扩展专有名词

首先来到es的config\analysis-ik目录下,新建new_word.dic,在里面写“凯悦”,注意编码格式。然后打开IKAnalyzer.cfg.xml把文件写进去

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict">new_word.dic</entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

然后把这两处修改同步到其他节点上。重启es后再测试一下:

虽然配置成功了,但是在搜索的时候会发现是空的,这是因为配置上已经改了过来,但是在es索引中还是两个字分开的,所以需要更新索引,局部更新:

POST /shop/_update_by_query
{
  "query":{
    "bool":{
      "must":[
        {"term":{"name":"凯"}},
        {"term":{"name":"悦"}}
      ]
    }
  }
}

 这样,再搜索“凯悦”,就只会出来含有专有名词“凯悦”的结果了。


扩展同义词

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值