828华为云征文 | 构建高效搜索解决方案,Elasticsearch & Kibana的完美结合

前言

构建高效搜索解决方案,FlexusX服务器Elasticsearch & Kibana的完美结合,为企业带来云端搜索新体验。FlexusX实例以其卓越性能与灵活扩展性,确保高并发搜索的流畅运行。部署Elasticsearch,享受分布式搜索的精准与快速;结合Kibana,实现数据可视化,决策更直观。在828华为云企业上云节不仅**降低成本,更提升效率。云端部署,资源按需分配,灵活应对业务增长。**立即体验,开启高效搜索新篇章,让数据驱动您的企业未来!

链接直达: 华为云Flexus云服务器X实例

Elasticsearch介绍

Elasticsearch是一个基于Lucene构建的开源、分布式搜索和分析引擎,它通过提供强大的全文搜索、实时分析能力和RESTful API,支持PB级数据的快速处理和复杂查询,特别适用于日志分析、网站搜索、实时监控和业务分析等多种场景,以其分布式架构、高可用性和可扩展性成为处理大数据的优选工具。

官方网站: https://www.elastic.co/cn/elasticsearch

官方文档: https://www.elastic.co/docs

kibana介绍

Kibana是一个开源的数据可视化与分析平台,专为Elasticsearch设计。它提供了一个直观且强大的界面,让用户能够轻松地探索、可视化、分析和共享存储在Elasticsearch索引中的数据。通过Kibana,用户可以创建自定义仪表板,以图形化方式展示关键指标、监控实时数据变化,并进行深入的数据分析。这一平台不仅简化了复杂数据的理解过程,还增强了数据驱动的决策能力,是Elasticsearch生态系统中不可或缺的组成部分,广泛应用于日志分析、性能监控、安全审计等多个领域。

官方网站: https://www.elastic.co/cn/downloads/kibana

官方文档: https://www.elastic.co/docs

环境规划

操作系统 ElasticSearch kibana docker docker-compose 连接方式
Huawei Cloud EulerOS 2.0 7.17.18 7.17.20 27.1.1 2.29.1 本地shell

部署流程

前期准备

创建网络

bash 复制代码
[root@flexusx-251f ~]# docker network create es-kb-net
a16e637d327b955c2b138c3d615d6ecce1ee6f760b919d5e974e50748c7cbc3f

拉取镜像

bash 复制代码
[root@flexusx-251f ~]# docker pull elasticsearch:7.17.20
7.17.20: Pulling from library/elasticsearch
d4c3c94e5e10: Already exists
e2d4b0a1128f: Pull complete
86cab1abf274: Pull complete
4f4fb700ef54: Pull complete
091252f7c9c3: Pull complete
ba22547cb7b5: Pull complete
6eb5ac7a61d1: Pull complete
78ac87136b0f: Pull complete
03977b84fc22: Pull complete
cb9719a7448f: Pull complete
Digest: sha256:ed3a3bdb961d0c488c74aaf1e44f48809e54981c1bb39a53b6047d71f191f69b
Status: Downloaded newer image for elasticsearch:7.17.20
docker.io/library/elasticsearch:7.17.20

[root@flexusx-251f ~]# docker pull kibana:7.17.18
7.17.20: Pulling from library/kibana
d4c3c94e5e10: Already exists
0fe144c362b1: Pull complete
0eeac22a56d8: Pull complete
fd30f5974e3c: Pull complete
0a37326c1989: Pull complete
4f4fb700ef54: Pull complete
9bc0aee2b8f5: Pull complete
c858d553a1d7: Pull complete
da67f383fa3e: Pull complete
7c9f20cf430f: Pull complete
9e0d12605b54: Pull complete
294777053dd6: Pull complete
df1e636ab8a5: Pull complete
2ab537178792: Pull complete
Digest: sha256:cc537607c5a7ac4c7bf8f5e2a2028200460a35a3593de22196ffcc24009347bc
Status: Downloaded newer image for kibana:7.17.20
docker.io/library/kibana:7.17.20

部署elasticsearch

创建 elasticsearch容器

bash 复制代码
[root@flexusx-251f ~]# docker run -itd \
  --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/local/elasticsearch7.17.20/data \
    -v es-plugins:/usr/local/elasticsearch7.17.20/plugins \
    -v es-logs:/usr/local/elasticsearch7.17.20/logs \
    --privileged \
    --network es-kb-net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.17.18

配置安全组,放行端口 9200

在浏览器地址栏输入:http://主机IP:9200

输出以下内容,证明ElasticSearch服务启动成功

部署Kibana

Kibana 使操作ES数据的可视化界面,使用Kibana 操作ES非常方便。

  • -e ELASTICSEARCH_HOSTS=http://es:9200设置elasticsearch的地址
  • 因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
bash 复制代码
[root@flexusx-251f ~]# docker run -itd --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-kb-net -p 5601:5601 kibana:7.17.20

查看日志,看服务是否启动

bash 复制代码
[root@flexusx-251f ~]# docker logs -f kibana

配置安全组,放行端口 5601

在浏览器地址栏输入:http://主机IP:5601

点击左上角按钮,点击 Dev Tools 即可进入如下所示的开发操作界面

在左边的控制台输入框中输入如下命令,然后点击右上角的三角形按钮执行请求即可在右边的界面看到查询结果。

安装IK分词器

ik分词器介绍

IK分词器是一款基于Java开发的中文分词工具,它提供了细粒度与智能分词两种模式,能够高效地对中文文本进行分词处理。IK分词器通过内置的词典以及算法优化,能够识别并分割出中文文本中的词汇,同时支持自定义词典的加载,以满足特定领域的分词需求。在搜索引擎、文本挖掘、自然语言处理等应用中,IK分词器因其准确性和灵活性而得到广泛应用。

注意事项

下载版本需要与 elasticsearch一致

项目地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

IK提供了两个分词算法 : ik_smartik_max_word ,其中ik_smart最少切分 , ik_max_word最细粒度划分

安装流程

进入elasticsearch容器内部

bash 复制代码
[root@flexusx-251f ~]# docker exec -it es bash
root@6b1996760d59:/usr/share/elasticsearch# cd /usr/share/elasticsearch/bin

在线下载安装

bash 复制代码
root@8c5ea6776581:/usr/share/elasticsearch/bin# ./elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.18/elasticsearch-analysis-ik-7.17.18.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See https://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   # 输入y
-> Installed analysis-ik
-> Please restart Elasticsearch to activate any plugins installed
root@8c5ea6776581:/usr/share/elasticsearch/bin# exit
exit

安装完成,重启容器

bash 复制代码
[root@flexusx-251f ~]# docker restart es
es

在左边的控制台输入框中输入如下中文分词请求:

bash 复制代码
GET _analyze
{
  "analyzer": "ik_smart",
  "text": "你好,欢迎来到华为云Flexus X实例的世界"
}

然后点击右边的执行请求按钮,可以看到右边的结果窗口返回如下结果

bash 复制代码
#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security.
{
  "tokens" : [
    {
      "token" : "你好",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "欢迎",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "来到",
      "start_offset" : 5,
      "end_offset" : 7,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "华为",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "云",
      "start_offset" : 9,
      "end_offset" : 10,
      "type" : "CN_CHAR",
      "position" : 4
    },
    {
      "token" : "flexus",
      "start_offset" : 10,
      "end_offset" : 16,
      "type" : "ENGLISH",
      "position" : 5
    },
    {
      "token" : "x",
      "start_offset" : 17,
      "end_offset" : 18,
      "type" : "ENGLISH",
      "position" : 6
    },
    {
      "token" : "实例",
      "start_offset" : 18,
      "end_offset" : 20,
      "type" : "CN_WORD",
      "position" : 7
    },
    {
      "token" : "的",
      "start_offset" : 20,
      "end_offset" : 21,
      "type" : "CN_CHAR",
      "position" : 8
    },
    {
      "token" : "世界",
      "start_offset" : 21,
      "end_offset" : 23,
      "type" : "CN_WORD",
      "position" : 9
    }
  ]
}

体验和感受

在数据驱动的时代,高效搜索解决方案成为企业提升竞争力的关键。华为云FlexusX服务器,以其卓越的性能、灵活的扩展性和稳定可靠的服务,为构建高效搜索环境提供了坚实的基础。而今,结合Elasticsearch的分布式搜索能力与Kibana的强大数据可视化功能,可以为企业打造了一个云端搜索解决方案的新标杆。

该服务器不仅拥有强大的计算能力,更支持资源的按需扩展,确保在高并发搜索场景下依然能够保持流畅运行。Elasticsearch,作为业界领先的搜索引擎,以其分布式架构、可扩展性和丰富的API接口,为企业提供了快速、准确、灵活的搜索体验。而Kibana,则以其直观易用的界面和强大的数据可视化能力,让搜索结果一目了然,助力企业做出更加精准的决策。

828华为云企业上云节期间 ,立即行动,点击下方链接,享受上云节专属优惠,让您的企业在数据海洋中畅游无阻,为企业带来前所未有的搜索效率和价值。

产品链接: 华为云Flexus云服务器X实例_直播_建站服务器-华为云

相关推荐
zhixingheyi_tian3 小时前
Spark 之 Aggregate
大数据·分布式·spark
PersistJiao3 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
宅小海6 小时前
scala String
大数据·开发语言·scala
小白的白是白痴的白6 小时前
11.17 Scala练习:梦想清单管理
大数据
java1234_小锋6 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
Java 第一深情10 小时前
零基础入门Flink,掌握基本使用方法
大数据·flink·实时计算
MXsoft61810 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
PersistJiao11 小时前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云11 小时前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC12 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源