Elasticsearch,head插件,kibana以及ik分词器的安装与简单使用

本文详细介绍了Elasticsearch的安装过程,包括Elasticsearch、head插件、Kibana的安装与配置。同时,文章还讲解了如何安装IK分词器以支持中文搜索,并探讨了Elasticsearch的核心概念,如倒排索引和分片。最后,通过REST风格的操作展示了索引、文档管理和查询的基本用法。
摘要由CSDN通过智能技术生成

Elasticsearch

  • 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;
  • 使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的Restful API来隐藏Lucence的复杂性,从而让全文搜索变得简单。

SQL:like %查询内容%,如果是大数据,就算有索引也十分慢

1.安装

  • 开发工具:Postman、Curl、head、Google浏览器插件
    (安装包可以自行下载,找不到可留言领取安装软件)

1、安装ElasticSearch

https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D

下载解压即可

bin:启动文件
config:配置文件
	log4j2:日志配置文件
	jvm.options java虚拟机相关配置
	elesticsearch.yml  配置文件!默认9200端口
plugins:插件

启动:点击bin/elasticsearch.bat,然后再浏览器访问http://127.0.0.1:9200/,出现以下

{
  "name" : "DESKTOP-0U1AJ4S",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AzTUTxy6Sbq1-j-jU1A2rw",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

2、安装可视化界面(head插件)

下载地址:https://github.com/mobz/elasticsearch-head/ (需要先安装npm)

  • 解压后,在该目录下打开cmd,
#使用cnpm安装依赖
cnpm install
或者npm install

#启动
npm run start
  • 解决跨域问题
#打开C:\tools\ES\elasticsearch-7.2.0\config\elasticsearch.yml,在最后追加
http.cors.enabled: true
http.cors.allow-origin: "*"

#保存,重启ES服务,访问http://localhost:9100/
点击连接,显示:集群健康值: green (0 of 0)
  • 也可以使用Google插件

3、安装Kibana

版本要一致https://mirrors.huaweicloud.com/kibana/7.2.0/?C=N&O=D

  • 解压后打开bin/kibana.bat,访问 http://localhost:5601

  • 汉化

C:\tools\ES\kibana-7.2.0-windows-x86_64\config\kibana.yml中追加
i18n.locale: "zh-CN"

4、安装ik分词器

与ES版本一致https://github.com/medcl/elasticsearch-analysis-ik/tree/v7.2.0

  • 解压:如果IK与ES版本不对应,运行ES时会报错说两者版本不对,导致无法启动。下载了IK分词器表面是7.2.0版本的,得到的处理过后的zip解压开是7.0.0版本的,只需要修改路径下的pom.xml里面的版本改成7.2.0即可。
  • 在此目录下打开dos窗口,执行命令mvn clean package进行打包。然后进入\target\releases下看到zip包
  • 在你安装es的所在目录下的的plugins下创建analysis-ik文件夹, 然后将上面打的zip包拷贝到analysis-ik文件夹下并将zip压缩包解压到此
  • 然后重新启动ES,可以看到ik分词器安装成功

2.ES核心概念

  • elasticsearch是面向文档,其和关系型数据库对比:(一切都是JSON)
Relational DB Elasticsearch
数据库(database) 索引(indices) (就和数据库一样)
表(tables) types (逐渐会被弃用)
行(rows) documents (文档)
字段(columns) fields
  • 索引

索引是映射类型的容器,es中的索引是一个非常大的集合。索引存储了映射类型的字段和其他设置,然后它们被存储到各个分片上

  • 一个集群至少有一个节点,而一个节点就是一个es进程,节点可以有多个默认索引,如果创建索引,那么索引将会有5个分片(primary shard,又称主分片)构成的,每一个主分片都会有一个副本(replica shard,又称复制分片
  • 主分片和对应的复制分片都不会在同一个节点内,这样有利于某个节点挂掉了,数据也不至于丢失。
  • 实际上,一个分片是一个Lucene索引,一个包含倒排索引的文件目录,倒排索引的结构使得ES在不扫描全部文档的情况下,就能告诉我们哪些文档包含特定的关键字
  • 倒排索引
    • ES使用的是一种称为倒排索引的结构,采用Lucene倒排索引作为底层,这种结构适用于快速的全文搜索。
    • 一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表

如通过博客标签来搜索博客文章,那么倒排索引就是这样一个结构

博客文章(原始数据) 索引列表(倒排索引)
博客文章ID 标签 标签 博客文章ID
1 python python 1,2,3
2 python linux 3,4
3 linux,python
4 linux

如果要搜索含有puthon标签的文章,那相对于查找所有的原始数据而言,查找倒排索引后的数据会快得多,只需要查看标签这一栏,然后获取相关的文章ID即可,完全过滤掉无关的所有数据,提高效率

倒排索引级文档分词成关键字与文档id之间的映射

3.IK分词器

分词:即把一段中文或者别的划分成一个个关键字,我么在搜素时会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每一个分词看成一个词,比如"好好学习"会被分为"好",“好”,“学”,“习”,这显然是不符合要求得,所以我们需要安装中文分词器IK来解决问题。

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

使用kibana测试,查看不同的分词效果

ik_smart
在这里插入图片描述

ik_max_word
在这里插入图片描述

自己需要的词,需要手动加入到分词器的字典中

IK分词器增加自己的配置

  • 添加my.dic配置
<!-- C:\tools\ES\elasticsearch-7.2.0\plugins\analysis-ik\config\IKAnalyzer.cfg.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值