elasticsearch使用ansj分词器

目前elasticsearch的版本已经更新到7.0以上了,不过由于客户需要5.2.2版本的elasticsearch,所以还是需要安装的,并且安装上ansj分词器。在部署ES的时候,采用容器的方式进行部署。因此需要考虑到映射端口等问题。

关于docker下部署es的步骤就简单的写一下:

1、首先是从官方拉去5.2.2的镜像下来。https://hub.docker.com/_/elasticsearch?tab=tags&page=4

使用命令:

docker pull elasticsearch:5.2.2

2、启动镜像,官方的启动命令是:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:5.2.2

3、然后访问即可,curl http://IP:9200显示“you know ,for search”表示安装成功。

不过建议修改一下elasticsearch.yml的配置文件,例如:

http.host: 0.0.0.0
# Uncomment the following lines for a production cluster deployment
transport.host: 0.0.0.0
# discovery.zen.minimum_master_nodes: 1

建议打开这两项,http.host表示打开9200的服务端口监听,transport.host表示打开9300的服务端口监听。

上面基本就已经安装好了,接下来就是安装分词器了。

1、首先是去下载分词器,然后进入容器去安装。进入容器后默认的当前目录是/usr/share/elasticsearch目录,此目录下是所有的ES包的基本配置。

各个版本的分词器下载地址:https://github.com/NLPchina/elasticsearch-analysis-ansj

安装分词器的步骤是()注意进入容器内执行此命令:

./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-analysis-ansj/releases/download/v5.2.2/elasticsearch-analysis-ansj-5.2.2.0-release.zip

安装好之后,就可以在plugins目录下看到ansj分词器的配置文件了。

2、接下来是重启一下ES容器,命令:docker restart es_name

3、开始激活ansj分词器功能。首先是激活索引功能,使用命令:

curl -XPUT 'localhost:9200/index'

4、激活索引功能之后关闭索引

curl -XPOST 'localhost:9200/_all/_open'

如果不执行第3步骤而是直接执行此步骤的话,会发现报错。主要是索引的功能没有激活。

5、加载默认的分词器

curl -XPUT 'http://localhost:9200/_all/_settings?preserve_existing=true' -d '{
  "index.analysis.analyzer.default.type" : "index_ansj",
  "index.analysis.analyzer.default_search.type" : "query_ansj"
}'

6、最后再次打开索引

curl -XPOST 'localhost:9200/_all/_open'

这样子整个ansj插件就已经安装成功了。可以直接使用了。

posted @ 2019-05-08 15:48  峰哥ge  阅读(2026)  评论(0编辑  收藏  举报