傲渊山岳 发表于 2023-3-3 16:36:02

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 安装
# pwd
/opt/elasticsearch
#安装
# docker-compose up -d
#查看日志
# docker-compose logs -fdocker-compose.yml
version:
services:
        elasticsearch:
                image: daocloud.io/library/elasticsearch:7.9.3
                restart: always
        container_name: elasticsearch
        ports:
                -9200:9200
        kibana:
                image: daocloud.io/library/kibana:7.9.3
                restart: always
                container name: kibana
        ports:
                - 5601:5601
        environment:
                - elasticsearch url=http://172.16.3.88:9200
        depends_on:
                - elasticsearch安装 IK Analysis

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

找到对应的 Elasticsearch 版本,这里用的:7.9.3,将地址复制到讯雷里下,直接下的话下不动
https://elasticsearch.cn/download/
https://img2023.cnblogs.com/blog/80824/202302/80824-20230222155013277-1565634571.png
https://img2023.cnblogs.com/blog/80824/202302/80824-20230222155237864-809672944.png
方式一:在容器中下载安装

先把zip下载下来。放到任意一台服务器(直接github上下载多数会失败)
# 查看 ES 的容器ID
# docker ps -a
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
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
# 进入 ES 容器
# docker exec -it ad68 /bin/bash
# 通过命令进行 ElasticSearch 插件安装,不需要重启
# elasticsearch-plugin install http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@   WARNING: plugin requires additional permissions   @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
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
-> Installed analysis-ik
#方式二:将文件上传至容器,进行安装

将 ik 文件传至服务器

https://img2023.cnblogs.com/blog/80824/202302/80824-20230222164343225-1022147262.png
将 ik 复制到容器,并安装

# 查看 ES 的容器ID
# docker ps -a
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
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
# 将it 插件,复制到容器中
# docker cp /opt/elasticsearch-analysis-ik-7.9.3.zip ad684997e228:/usr/share/elasticsearch
# 进入 ES 容器
# docker exec -it ad68 /bin/bash
# 通过命令进行 ElasticSearch 插件安装,不需要重启
# elasticsearch-plugin install file:\/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Installing file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@   WARNING: plugin requires additional permissions   @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
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
-> Installed analysis-ik
#重启容器

docker restart xxx如果不重启会报:failed to find global analyzer
{
    "error": {
      "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "failed to find global analyzer "
            }
      ],
      "type": "illegal_argument_exception",
      "reason": "failed to find global analyzer "
    },
    "status": 400
}接口测试(Postman)

http://172.16.3.88:9200/_analyze
{
    "analyzer":"ik_smart",
    "text":"心脏搭桥手术"
}https://img2023.cnblogs.com/blog/80824/202302/80824-20230222171125717-992931418.png
Kibana 测试

https://img2023.cnblogs.com/blog/80824/202302/80824-20230223132421168-1743282280.png
POST _analyze{
    "analyzer":"ik_smart",
    "text":"心脏搭桥手术"
}https://img2023.cnblogs.com/blog/80824/202302/80824-20230223132451672-865712175.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装