700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ES安装中文IK分词器

ES安装中文IK分词器

时间:2019-10-25 01:29:49

相关推荐

ES安装中文IK分词器

之前自己一个人折腾ES的时候,安装IK分词器都会失败,以为没有8.x的支持,只有7.x的版本。其实不是,这里将步骤记录下来。

1,访问IK分词器项目地址

查看相应的Readme内容,当前已经支持到ES 8.4.1版本,也就是说一直在更新。

readme

2, 安装方式选择

有两种,安装都比较简单,可以任意选择一种。

3, 选择elasticsearch plug命令的方式安装。

查看具体ES版本对应的IK分词器链接地址。通过这个link查看:

例如我现在需要安装针对ES8.1.0的

拷贝下link地址以备后用。

登录ES服务器,使用elasticsearch-plugin命令安装:

[es@localhost ~]$ cd /app/es/bin/

[es@localhost bin]$ ./elasticsearch-plugin install /medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip

-> Installing /medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip

-> Downloading /medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip

[=================================================] 100%

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: plugin requires additional permissions @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

* .SocketPermission * connect,resolve

See /javase/8/docs/technotes/guides/security/permissions.html

for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y

-> Installed analysis-ik

-> Please restart Elasticsearch to activate any plugins installed

重启ES

安装完成。

4,使用IK分词器。

自 v5.0.0 起移除名为 ik 的analyzer和tokenizer,请分别使用 ik_smart 和 ik_max_word

下面我使用官方的实例进行测试。

1.create a index

[es@localhost bin]$ curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPUT "https://192.168.88.8:9200/index"

{"acknowledged":true,"shards_acknowledged":true,"index":"index"}

2.create a mapping

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST "https://192.168.88.8:9200/index/_mapping" -d'

{

"properties": {

"content": {

"type": "text",

"analyzer": "ik_max_word",

"search_analyzer": "ik_smart"

}

}

}'

如果有"analyzer [ik_smart] has not been configured in mappings"的报错,要注意,如果是ES集群,需要每个集群都安装IK分词器。我只在一个节点运行了,因此我在节点2上也运行ik分词器的安装:

最后,需要重启ES才能将安装的插件生效。

3.index some docs

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST https://192.168.88.8:9200/index/_create/1 -d'

{"content":"内容参考github上的原文"}

'

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST https://192.168.88.8:9200/index/_create/2 -d'

{"content":"内容参考github上的原文"}

'

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST https://192.168.88.8:9200/index/_create/3 -d'

{"content":"内容参考github上的原文"}

'

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST https://192.168.88.8:9200/index/_create/4 -d'

{"content":"中内容参考github上的原文"}

'

4.query with highlighting

curl -H "Content-Type:application/json" --cacert /app/es/config/certs/http_ca.crt -u elastic:elastic123 -XPOST https://192.168.88.8:9200/index/_search -d'

{

"query" : { "match" : { "content" : "内容参考github上的原文" }},

"highlight" : {

"pre_tags" : ["<tag1>", "<tag2>"],

"post_tags" : ["</tag1>", "</tag2>"],

"fields" : {

"content" : {}

}

}

}

'

输出结果:

如果嫌上面的输出格式不清楚,可以使用Kibana的Dev Tools进行查询:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。