es自建搜索词库_elasticsearch实现中文分词+远程自定义词库(nginx)

本文介绍了如何在Elasticsearch中使用IK分词器进行中文分词,并通过Nginx配置远程词库,实现自定义过滤和添加关键词,以提高查询效率和准确性。
摘要由CSDN通过智能技术生成

中文分词

elasticsearch本身自带的中文分词,就是单纯把中文一个字一个字的分开,根本没有词汇的概念。但是实际应用中,用户都是以词汇为条件,进行查询匹配的,如果能够把文章以词汇为单位切分开,那么与用户的查询条件能够更贴切的匹配上,查询速度也更加快速。

分词器下载网址:https://github.com/medcl/elasticsearch-analysis-ik

安装

下载好的zip包,请解压后放到 /usr/share/elasticsearch/plugins/ik(可以不叫ik但是必须再此目录下,且不能出现其他的文件)

然后重启es

基于中文分词搭建索引

PS:添加了中文分词的词库之后,以后的type就不能使用默认的mapping了,默认的中文分词是一字一词的

注意下面的name用的是中文分词

PUT movie_chn

{

"mappings": {

"movie_type_chn":{

"properties": {

"id":{

"type": "long"

},

"name":{

"type": "text"

, "analyzer": "ik_smart"

},

"doubanScore":{

"type": "double"

},

"actorList":{

"properties": {

"id":{

"type":"long"

},

"name":{

"type":"keyword"

}

}

}

}

}

}

}

为什么要用远程词库?

过滤一些不能够出现的词语,以及一些流行词语。

实现方式:同将远程词库放在Nginx中当静态资源使用,这样添加的词语不用重启两个服务都就可以直接使用,

需要的配置:

修改/usr/share/elasticsearch/plugins/ik/config/中的IKAnalyzer.cfg.xml

IK Analyzer 扩展配置

http://192.168.67.163/fenci/myword.txt

修改

/usr/local/nginx/conf

中的nginx.conf

按照路径利用nginx发布静态资源

在nginx.conf中配置

server {

listen 80;

server_name 192.168.232.128;

location /fenci/ {

root es;

}

}

并且在/usr/local/nginx/下建/es/fenci/目录,目录下加myword.txt

myword.txt中编写关键词,每一行代表一个词。

访问成功

自定义分词成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值