3、docker-compose安装es、eshead、分词器HanLP v7.3.2

1、 编辑docker-compose.yml 文件

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.3.2
    container_name: elasticsearch
    network_mode: host
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime
    #  - ./esdata:/usr/share/elasticsearch
    environment:
      - discovery.type=single-node
      #下面这些参数若放开则会覆盖elasticsearch.yml和jvm.options的参数
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms2G -Xmx2G
      - "http.cors.enabled=true"
      - "http.cors.allow-origin=*"
      - indices.memory.index_buffer_size=20%
      - indices.query.bool.max_clause_count=100000000
    ports:
      - "9200:9200"
      - "9300:9300"

  es-head:
    image: mobz/elasticsearch-head:5
    container_name: elasticsearch-head
    network_mode: host
    restart: always
    #volumes:
    #  - ./headdata:/usr/src/app/_site
    ports:
      - 9100:9100

2、 启动es和eshead(eshead映射出来是因为查询不到数据需要修改js),并把目录映射出来

[root@test1 es]# docker-compose up -d
[root@test1 es]# docker cp elasticsearch:/usr/share/elasticsearch/ esdata/
[root@test1 es]# ll esdata/
总用量 552
drwxr-xr-x  2 root root   4096 96 2019 bin
drwxrwxr-x  2 root root   4096 310 16:11 config
drwxrwxr-x  3 root root   4096 310 16:11 data
drwxr-xr-x  8 root root   4096 96 2019 jdk
drwxr-xr-x  3 root root   4096 96 2019 lib
-rw-r--r--  1 root root  13675 96 2019 LICENSE.txt
drwxrwxr-x  2 root root   4096 310 16:11 logs
drwxr-xr-x 33 root root   4096 96 2019 modules
-rw-r--r--  1 root root 502598 96 2019 NOTICE.txt
drwxr-xr-x  2 root root   4096 96 2019 plugins
-rw-r--r--  1 root root   8500 96 2019 README.textile


[root@test1 es]# docker cp elasticsearch-head:/usr/src/app/_site headdata
[root@test1 es]# ll headdata/
总用量 652
-rw-r--r-- 1 root root  14908 222 2016 app.css
-rw-r--r-- 1 root root 143298 16 2017 app.js
drwxr-xr-x 2 root root   4096 113 2015 base
drwxr-xr-x 2 root root   4096 113 2015 fonts
-rw-r--r-- 1 root root   2860 628 2016 i18n.js
-rw-r--r-- 1 root root   1043 16 2017 index.html
drwxr-xr-x 2 root root   4096 16 2017 lang
-rw-r--r-- 1 root root  21643 222 2016 vendor.css
-rw-r--r-- 1 root root 459905 222 2016 vendor.js
[root@test1 es]#

3、 修改配置文件

3.1 修改 ElasticSearch内存:

[elasticsearch@test1 ~]$ vim esdata/config/jvm.options
在这里插入图片描述

3.2 修改esdata/config/elasticsearch.yml

cluster.name: "docker-cluster"

#可填写本机ip,也可0.0.0.0
network.host: 0.0.0.0

#默认是随机字符串,可默认
#node.name: node-1

#可修改es访问端口,默认9200,可默认
#http.port: 9200

# ES数据和日志存放位置
#path.data: /home/elasticsearch/elasticsearch-7.3.2/data
#path.logs: /home/elasticsearch/elasticsearch-7.3.2/logs

# 快照路径
#path.repo: /home/elasticsearch/elasticsearch-7.3.2/snapshots

# 允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

##优化参数
indices.memory.index_buffer_size: 20%
indices.query.bool.max_clause_count: 100000000

4、安装分词器HanLP v7.3.2

4.1. 下载分词器

[elasticsearch@test1 download]$ pwd
/home/elasticsearch/download
[elasticsearch@test1 download]$ wget https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.3.2/elasticsearch-analysis-hanlp-7.3.2.zip

4.2. 安装到ES

4.2.1 单机安装HanLP插件到ES(单点)

[elasticsearch@test1 elasticsearch-7.3.2]$ ./bin/elasticsearch-plugin install file:///home/esdata/elasticsearch-analysis-hanlp-7.3.2.zip

-> Downloading file:///home/elasticsearch/download/elasticsearch-analysis-hanlp-7.3.2.zip
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission <<ALL FILES>> read,write,delete
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.net.SocketPermission * connect,resolve
* java.util.PropertyPermission * read,write
See http://docs.oracle.com/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-hanlp
[elasticsearch@test1 elasticsearch-7.3.2]$

4.2.2 修改elasticsearch-7.3.2/config目录下的jvm.options文件,最后一行添加(相对路径不行改成绝对路径)

#容器里的相对路径
-Djava.security.policy=plugins/analysis-hanlp/plugin-security.policy

4.2.3 配置修改(如果不好用修改成绝对路径,默认是相对路径)

修改elasticsearch-7.3.2/config/analysis-hanlp目录下的hanlp.properties文件,
修改其中root的属性

#需要执行4.2.1 才能生成这个文件夹
vim elasticsearch-7.3.2/config/analysis-hanlp/hanlp.properties


# Root path of data   #容器里的相对路径
root=plugins/analysis-hanlp/

5、eshead Content-Type header请求头错误

在这里插入图片描述
数据浏览看不到任何数据,且查看数据请求报错,错误情况如下:
{ error:“Content-Type header [application/x-www-form-urlencoded] is not supported”,status:406 }

解决方法:
vim headdata/vendor.js
修改共有两处:

1. 6886/contentType: "application/x-www-form-urlencoded 
    改成 contentType: "application/json;charset=UTF-8" 
2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 
    改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&

6、重启es并测试

curl -X GET "http://192.168.180.47:9200/_analyze" -H "Content-Type: application/json" -d '
{
    "text": "我们大家的中华人民共和国",
    "analyzer": "hanlp"
}'
# 使用分词器后的查询结果
{
  "tokens": [
    {
      "token": "我们",
      "start_offset": 0,
      "end_offset": 2,
      "type": "rr",
      "position": 0
    },
    {
      "token": "大家",
      "start_offset": 2,
      "end_offset": 4,
      "type": "rr",
      "position": 1
    },
    {
      "token": "的",
      "start_offset": 4,
      "end_offset": 5,
      "type": "ude1",
      "position": 2
    },
    {
      "token": "中华人民共和国",
      "start_offset": 5,
      "end_offset": 12,
      "type": "ns",
      "position": 3
    }
  ]
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值