IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 126.ElasticSearch(一):es、head、kibana下载和安装,es基本概念,ik分词器的设置 -> 正文阅读

[大数据]126.ElasticSearch(一):es、head、kibana下载和安装,es基本概念,ik分词器的设置

目录

一、ElasticSearch基本概念

1.Lucene和ElasticSearch关系

2.ElasticSearch概述

3.es和solr比较

4.ELK

二、ES,head插件,Kibana插件的安装

1.下载windows版本es

?2.安装head可视化界面

(1)下载

(2)下载安装node.js和grunt

(3)解决跨域问题

?(4)启动head

3.安装kibana

(1)下载

?(2)启动

(3)开发工具,汉化

三、ES核心概念理解

1.es与数据库对比

2.物理设计

3.逻辑设计

(1)文档

(2)类型

(3)索引

4.节点和分片

5.倒排索引

6.es的索引和Lucene索引的对比

四、IK分词器

1.什么是分词器

2.ik中的两个分词算法

3.下载,安装,启动

(1)下载

(2)放到es的plugins目录下

(3)重启es

(4)重启kibana测试

4.自定义分词

(1)修改IKAnalyzer.cfg.xml文件

(2)新建自定义文件

?(3)重启es和kibana,并测试

五、打赏请求


一、ElasticSearch基本概念

1.Lucene和ElasticSearch关系

Lucene是一套信息检索工具包,是一个jar包。

Lucene包含索引结构,读写索引的工具,排序,搜索规则等等,不包含搜索引擎系统。

ElasticSearch是基于Lucene做一个封装和增强

2.ElasticSearch概述

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

es是一个实时分布式搜索和分析引擎,能以前所未有的速度处理大数据。它用于全文搜索,结构化搜索,分析

3.es和solr比较

(1)对单纯的已有的数据进行搜索:solr更快

(2)当实时建立索引时,solr会产生io阻塞,es会快得多

(3)随着数据里越来越大,solr效率会越来越低,es完全没影响

4.ELK

什么是ELK?

ELK = ElasticSearch + Logstash + Kibana,也被称为Elastic Stack

其中es作为底层支持架构,用来做搜索。Lgostash是ELK的中央数据流引擎,拥有将不同格式数据过滤输出到不同目的地。Kibana将数据友好展示,并提供实时分析功能。

二、ES,head插件,Kibana插件的安装

1.下载windows版本es

注:jdk最低要1.8及以上!!!

官网地址:https://www.elastic.co/cn/downloads/elasticsearch

注:实际操作中我们下载的是7.6.1的windows版本。

?直接解压就可以用了。

启动好之后登陆9200端口可以看到一串话表示成功:

?2.安装head可视化界面

(1)下载

进入github:https://github.com/mobz/elasticsearch-head#running-with-built-in-server

然后下载:

(2)下载安装node.js和grunt

node.js:

node下载地址:https://nodejs.org/en/download/,下载对应环境的node版本安装即可,安装步骤略过了。

安装过程结束后,在dos窗口查看是否安装成功,使用命令:node -v。

grunt:

在node安装路径下,使用命令安装:npm install -g grunt-cli 安装grunt。

安装结束后,使用命令grunt -version查看是否安装成功。

(3)解决跨域问题

在elasticsearch.yml添加:?

http.cors.enabled: true
http.cors.allow-origin: "*"

然后重启es的bat文件:

?(4)启动head

#打开cmd,输入如下指令
cnpm install
npm run start

注:如果显示你cnpm不是内部或外部命令:

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm -v

成功,且没有跨域问题:?

简单的可以把索引当成数据库。

3.安装kibana

(1)下载

官网:https://www.elastic.co/cn/kibana/

下载地址:https://www.elastic.co/cn/downloads/kibana

注:要和es的版本一致,我们学习的时候下载windows版本

?(2)启动

解压好后双击bat文件启动:

?

(3)开发工具,汉化

点击左边Dev Tools开发工具:

?后续我们就在这边做测试:

?再来做一下汉化:

?

?修改完汉化后重启项目,一个字:爽!

三、ES核心概念理解

1.es与数据库对比

es是面向文档。一切内容都是json。我们可以对照关系型数据库理解es:

关系型数据库?ElasticSearch
数据库(db)?索引(indices)
表(tables)types(慢慢被弃用)
行(rows)documents(文档)
字段(columns)fields

es中可以包含多个索引(数据库),每个索引中包含多个类型(表),每个类型包含多个文档(行),每个文档包含多个列(字段)

2.物理设计

es在后台把每个索引分成多个分片,每片分片可以在集群中的不同服务器间迁移。

如果只启动一个es那它一个人也是一个集群。默认的集群名称是elasticsearch

3.逻辑设计

一个索引类型中,包含多个文档,当我们索引一篇文章时,通过这样的顺序查找:索引==>类型==>文档ID。通过这个组合我们就能索引到某个具体的文档。

我自己的简单理解:一个大的json就是索引,json里的key:value就是文档,而key:value对应的类型映射就是类型。

(1)文档

索引和搜索数据最小单位是文档,文档有几个重要属性:

  • 自我包含,一篇文档同时包含字段和值,即key:value
  • 层次型,一个json可以有多个层级
  • 文档不依赖预先定义的模式。一个复杂的json对象,对其中添加一个字段减少一个字段很方便,而数据库需要先新建字段,才可以在对应字段添加数据

(2)类型

类型中对于字段的定义称为映射,比如name映射为字符串类型

一个json你添加一个key:value,es会去猜你这个value的值是什么类型,这个猜有可能会猜错,所以我们最好就是提前定义好需要的映射,每个映射的值是什么类型。后面操作的时候就按照定义的来就行。

(3)索引

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

4.节点和分片

一个集群至少有一个节点,而一个节点就是一个elasticsearch进程。

节点可以有多个索引。如果你创建索引,那么索引将会有5个分片(主分片)。每个主分片会有都会有一个副分片(复制分片)。(分片可以认为一个索引被分成了5个部分,每部分叫一个分片

如果集群有多个节点,一个节点创建了一个索引,这个索引有5个分片,这5个分片不一定都在同一个节点下,有可能在不同的节点下。实际上,每个分片 都是一个Lucene索引,一个包含倒排索引的文件目录,倒排索引的结构使得es在不扫面全部文档的情况下,就能告诉你哪些文档包含特定的关键词

5.倒排索引

上面说了,每个分片都是一个Lucene索引,每个分片都包含倒排索引的文件目录。

常规索引是key:value铺开,有多少条数据就有多少key:value,时间复杂度为n。

倒排索引可以理解为value:keys。包含某个value的key分别是哪些,然后每次要查找指定value的时候就可以直接在keys里去找了,而不用遍历所有。

6.es的索引和Lucene索引的对比

在es中索引被分为多个分片,每份分片是一个Lucene的索引。所以一个es索引是多个Lucene索引组成的。

四、IK分词器

1.什么是分词器

分词:把一段中文或者别的划分为一个个的关键字,我们在搜索的时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,这不符合要求,因此需要中文分词器ik来解决这个问题。

2.ik中的两个分词算法

ik_smart:最少切分

ik_max_word:最细粒度划分

3.下载,安装,启动

(1)下载

注意版本:https://github.com/medcl/elasticsearch-analysis-ik/releases

(2)放到es的plugins目录下

注1:路径不要有中文

注2:压缩包要删掉,不然有可能启动不起来

(3)重启es

注1:重启 的时候关闭head和kibana和es,再重启

可以看到我们加载了ik,这样就是成功了:

?也可以bin下重新开一个cmd,输入:

elasticsearch-plugin list

(4)重启kibana测试

ik_smart:

ik_max_word:

4.自定义分词

现在有一个问题,如果我们输入“我爱徐鹏”,我们要把徐鹏作为一个整体,但是因为默认汉字是单个拆分,不符合我们的需求。我们需要自定义“徐鹏”,让es能够将其视为一个整体。?

(1)修改IKAnalyzer.cfg.xml文件

.进入es的plugins,找到IKAnalyzer.cfg.xml文件:

?自定义一个文件名称:

(2)新建自定义文件

我们然后新建自定义文件:

注:新建时最好复制其他的dic再粘贴,避免编码等问题

?

?(3)重启es和kibana,并测试

我们发现,徐鹏已经作为一个整体用来查询了

五、打赏请求

如果本篇博客对您有所帮助,打赏一点呗,谢谢了呢~

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 00:21:38  更:2021-07-14 00:21:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 12:09:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码