ToB企服应用市场:ToB评测及商务社交产业平台

标题: ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装 [打印本页]

作者: 傲渊山岳    时间: 2023-3-3 16:36
标题: ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装
目录

ElasticSearch 实现分词全文检索 - 概述
ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装
ElasticSearch 实现分词全文检索 - Restful基本操作 --待发布
ElasticSearch 实现分词全文检索 - Java SpringBoot ES 索引操作 --待发布
ElasticSearch 实现分词全文检索 - Java SpringBoot ES 文档操作 --待发布
ElasticSearch 实现分词全文检索 - 测试数据准备 --待发布
ElasticSearch 实现分词全文检索 - term、terms查询 --待发布
ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查询 --待发布
ElasticSearch 实现分词全文检索 - Scroll 深分页 --待发布
ElasticSearch 实现分词全文检索 - delete-by-query --待发布
ElasticSearch 实现分词全文检索 - 复合查询 --待发布
ElasticSearch 实现分词全文检索 - filter查询 --待发布
ElasticSearch 实现分词全文检索 - 高亮查询 --待发布
ElasticSearch 实现分词全文检索 - 聚合查询 cardinality --待发布
ElasticSearch 实现分词全文检索 - 经纬度查询 --待发布
安装 ElasticSearch

详见 Docker 安装 Elasticsearch、Kibana 7.9.3
或者 使用 docker compose 安装
  1. [root@localhost elasticsearch]# pwd
  2. /opt/elasticsearch
  3. #安装
  4. [root@localhost elasticsearch]# docker-compose up -d
  5. #查看日志
  6. [root@localhost elasticsearch]# docker-compose logs -f
复制代码
docker-compose.yml
  1. version:
  2. services:
  3.         elasticsearch:
  4.                 image: daocloud.io/library/elasticsearch:7.9.3
  5.                 restart: always
  6.         container_name: elasticsearch
  7.         ports:
  8.                 -9200:9200
  9.         kibana:
  10.                 image: daocloud.io/library/kibana:7.9.3
  11.                 restart: always
  12.                 container name: kibana
  13.         ports:
  14.                 - 5601:5601
  15.         environment:
  16.                 - elasticsearch url=http://172.16.3.88:9200
  17.         depends_on:
  18.                 - elasticsearch
复制代码
安装 IK Analysis

ES 默认分词器,对汉字的分词不太友好
下载 ik 分词器插件

找到对应的 Elasticsearch 版本,这里用的:7.9.3,将地址复制到讯雷里下,直接下的话下不动
https://elasticsearch.cn/download/


方式一:在容器中下载安装

先把zip下载下来。放到任意一台服务器(直接github上下载多数会失败)
  1. # 查看 ES 的容器ID
  2. [root@localhost ~]# docker ps -a
  3. CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
  4. ad684997e228   elasticsearch:7.9.3   "/tini -- /usr/local…"   7 minutes ago   Up 7 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
  5. # 进入 ES 容器
  6. [root@localhost ~]# docker exec -it ad68 /bin/bash
  7. # 通过命令进行 ElasticSearch 插件安装,不需要重启
  8. [root@ad684997e228 elasticsearch]# elasticsearch-plugin install http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
  9. -> Downloading http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
  10. [=================================================] 100%??
  11. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  12. @     WARNING: plugin requires additional permissions     @
  13. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  14. * java.net.SocketPermission * connect,resolve
  15. See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
  16. for descriptions of what these permissions allow and the associated risks.
  17. Continue with installation? [y/N]y
  18. -> Installed analysis-ik
  19. [root@ad684997e228 elasticsearch]#
复制代码
方式二:将文件上传至容器,进行安装

将 ik 文件传至服务器


将 ik 复制到容器,并安装
  1. # 查看 ES 的容器ID
  2. [root@localhost ~]# docker ps -a
  3. CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
  4. ad684997e228   elasticsearch:7.9.3   "/tini -- /usr/local…"   7 minutes ago   Up 7 minutes   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
  5. # 将it 插件,复制到容器中
  6. [root@localhost ~]# docker cp /opt/elasticsearch-analysis-ik-7.9.3.zip ad684997e228:/usr/share/elasticsearch
  7. # 进入 ES 容器
  8. [root@localhost ~]# docker exec -it ad68 /bin/bash
  9. # 通过命令进行 ElasticSearch 插件安装,不需要重启
  10. [root@ad684997e228 elasticsearch]# elasticsearch-plugin install file:\/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
  11. -> Installing file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
  12. -> Downloading file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
  13. [=================================================] 100%??
  14. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  15. @     WARNING: plugin requires additional permissions     @
  16. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  17. * java.net.SocketPermission * connect,resolve
  18. See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
  19. for descriptions of what these permissions allow and the associated risks.
  20. Continue with installation? [y/N]y
  21. -> Installed analysis-ik
  22. [root@ad684997e228 elasticsearch]#
复制代码
重启容器
  1. docker restart xxx
复制代码
如果不重启会报:failed to find global analyzer [ik_smart]
  1. {
  2.     "error": {
  3.         "root_cause": [
  4.             {
  5.                 "type": "illegal_argument_exception",
  6.                 "reason": "failed to find global analyzer [ik_smart]"
  7.             }
  8.         ],
  9.         "type": "illegal_argument_exception",
  10.         "reason": "failed to find global analyzer [ik_smart]"
  11.     },
  12.     "status": 400
  13. }
复制代码
接口测试(Postman)

http://172.16.3.88:9200/_analyze
  1. {
  2.     "analyzer":"ik_smart",
  3.     "text":"心脏搭桥手术"
  4. }
复制代码

Kibana 测试

  1. POST _analyze{
  2.     "analyzer":"ik_smart",
  3.     "text":"心脏搭桥手术"
  4. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4