ElasticSearch 实现分词全文检索 - ES、Kibana、IK分词器安装

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElasticSearch 实现分词全文检索 - ES、Kibana、IK分词器安装

安装 ElasticSearch

Docker ElasticSearch

详见 Docker 安装 Elasticsearch、Kibana

Docker Compose 安装

或者 使用 docker compose 安装

[root@localhost ~]# docker-compose version
bash: docker-compose: 未找到命令...

docker compose 下载地址:https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64

将 docker-compose-Linux-x86_64 传到 /usr/local/bin 目录下,并改名为 docker-compose

[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose version
Docker Compose version v2.16.0

Docker Compose ElasticSearch

在目录 /opt/elasticsearch (目录自定义)下创建 docker-compose.yml 文件内容如下

version: "7.9.3"
services:
  elasticsearch:
    image: elasticsearch:7.9.3
    restart: always
    container_name: elasticsearch
    ports:
      - 9200:9200
    volumes:
      - /opt/elasticsearch/logs:/usr/share/elasticsearch/logs
  kibana:
    image: kibana:7.9.3
    restart: always
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      - elasticsearch url=http://172.16.3.88:9200
      - I18N_LOCALE=zh-CN
    depends_on:
      - elasticsearch

执行命令

[root@localhost ~]# cd /opt/elasticsearch
[root@localhost elasticsearch]# pwd
/opt/elasticsearch
#安装
[root@localhost elasticsearch]# docker-compose up -d
[+] Running 0/24
 ⠇ elasticsearch Pulling                                                                                    42.8s
   ⠇ 3c72a8ed6814 Downloading [=================================>                 ]   5...                  26.9s
   ⠇ e0812c7c6d71 Download complete                                                                         26.9s
   ⠇ ae1d3d20a65c Download complete                                                                         26.9s
   ⠇ f38df76a58b2 Downloading [====>                                              ]  28...                  26.9s
   ⠇ 2eca3bea9f3c Download complete                                                                         26.9s
   ⠇ 8d0e26c84dc9 Download complete                                                                         26.9s
   ⠇ 739cff10e6d4 Download complete                                                                         26.9s
   ⠇ ebb4b2f0826b Download complete                                                                         26.9s
   ⠇ a93ad4ceb967 Download complete                                                                         26.9s
 ⠧ kibana Pulling                                                                                           42.8s
   ⠧ 55b131d31acb Downloading [======================================>            ]  17...                  26.7s
   ⠧ b8d3f5b80820 Waiting                                                                                   26.7s
   ⠧ ce01809aac54 Waiting                                                                                   26.7s
   ⠧ cd62ae8b2560 Waiting                                                                                   26.7s
   ⠧ 3f1b4e913944 Waiting                                                                                   26.7s
   ⠧ a14f0f39a444 Waiting                                                                                   26.7s
   ⠧ 6b9eac14d916 Waiting                                                                                   26.7s
   ⠧ 7d309d052637 Waiting                                                                                   26.7s
   ⠧ b35a5bce98d2 Waiting                                                                                   26.7s
   ⠧ d57619633b37 Waiting                                                                                   26.7s
   ⠧ 97c6a30a6480 Waiting                                                                                   26.7s
   ⠧ 1bff97a8e672 Waiting                                                                                   26.7s
   ⠧ 5ffe1970589a Waiting                                                                                   26.7
#查看日志
[root@localhost elasticsearch]# docker-compose logs -f

安装 IK Analysis

ES 默认分词器,对汉字的分词不太友好

下载 ik 分词器插件

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

https://elasticsearch.cn/download/

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

先把zip下载下来。放到任意一台服务器(直接github上下载多数会失败)

# 查看 ES 的容器ID
[root@localhost ~]# 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 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通过命令进行 ElasticSearch 插件安装,不需要重启
[root@ad684997e228 elasticsearch]# elasticsearch-plugin install http://172.16.0.183:8899/Java/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading http://172.16.0.183:8899/Java/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/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#

方式二:将文件上传至容器,进行安装

将 ik 文件传至服务器

将 ik 复制到容器,并安装
# 查看 ES 的容器ID
[root@localhost ~]# 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 插件,复制到容器中
[root@localhost ~]# docker cp /opt/elasticsearch-analysis-ik-7.9.3.zip ad684997e228:/usr/share/elasticsearch
# 进入 ES 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通过命令进行 ElasticSearch 插件安装,不需要重启
[root@ad684997e228 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/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#

重启容器

docker restart xxx

如果不重启会报:failed to find global analyzer [ik_smart]

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "failed to find global analyzer [ik_smart]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "failed to find global analyzer [ik_smart]"
    },
    "status": 400
}

接口测试(Postman)

http://172.16.3.88:9200/_analyze

{
    "analyzer":"ik_smart",
    "text":"心脏搭桥手术"
}

Kibana 测试

POST _analyze
{
    "analyzer":"ik_smart",
    "text":"心脏搭桥手术"
}

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
2月前
|
自然语言处理 Java 网络架构
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
这篇文章是关于如何自定义Elasticsearch的ik分词器配置以满足特定的中文分词需求。
141 0
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
|
19天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
26天前
|
存储 监控 安全
|
1月前
|
测试技术 API 开发工具
ElasticSearch的IK分词器
ElasticSearch的IK分词器
45 7
|
2月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
27 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
147 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
4月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
4月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。