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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ElasticSearch简介和使用方法(入门) -> 正文阅读

[大数据]ElasticSearch简介和使用方法(入门)

目录

一、ElasticSearch简介

1.ElasticSearch官网:

2.ElasticSearch是做什么的?

3. Lucene 是什么?

4.什么是全文检索?

??????? 4.1 数据分类

??????? 4.2 非结构化数据查询方法

5.使用场景

?6. ElasticSearch核心概念

7.索引和搜索流程

二、ElasticSearch的使用

?1.windows中运行

?2.检查是否运行成功

?3.关于Head插件

?4.安装ik分词器

?5.Kibana

?6. es的增删改查操作

??????? 6.1 操作索引库



未完待续......


一、ElasticSearch简介

1.ElasticSearch官网:

Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastichttps://www.elastic.co/

2.ElasticSearch是做什么的?

????????ElasticSearch是一个基于Lucene的搜索服务器 ,实现全文检索。

3. Lucene 是什么?

????????Lucene 是 apache 下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene 的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。

4.什么是全文检索?

??????? 简言之,全文检索就是将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索。

????????想要明白什么是全文检索,需要明白一个概念:什么是非结构化数据?和非结构化数据查询方法?

??????? 4.1 数据分类

????????我们生活中的数据总体分为两种:结构化数据和非结构化数据。

  • 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。

  • 非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等磁盘上的文件

??????? 4.2 非结构化数据查询方法

  • 顺序扫描法(Serial Scanning) 所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用 windows 的搜索也可以搜索文件内容,只是相当慢。

  • 全文检索(Full-text Search) :将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。 例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有拼音表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某 些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种 可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。 我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据—— 也即对字的解释。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search) 。 虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。

5.使用场景

????????对于数据量大、数据结构不固定的数据可采用全文检索方式搜索,比如百度、Google 等搜索引擎、视频网站内搜索、电商网站站内搜索等。

????????比如使用关系型数据库MySQL,一张表数据量达到千万级别,这个时候要进行like查询,数据基本查不动。

?6. ElasticSearch核心概念

????????索引(index):

????????????????ElasticSearch存储数据的地方,可以理解成关系型数据库中的数据库概念。

????????映射(mapping):

????????????????mapping定义了每个字段的类型、字段所使用的分词器等。相当于关系型数据库中的表结构。

????????文档(document):

????????????????Elasticsearch中的最小数据单元,常以json格式显示。一个document相当于关系型数据库中的一行数据。

????????倒排索引:

????????????????将各个文档中的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)的对应关系,形成的产物。

????????????????一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,对应一个包含它的文档id列表。

????????????????ES将写入索引的所有信息组织为倒排索引( inverted index)的结构形式。倒排索引是一种将词条映射到文档的数据结构,它与传统的关系数据库的工作方式不同。你可以认为倒排索引是面向词条的而不是面向文档的。?

????????类型(type):

????????????????一种type就像一类表。如用户表、角色表等。在Elasticsearch7.X默认type为_doc

? ??????????????????????? 注:?\- ES 5.x中一个index可以有多种type。

????????????????????????????? ? ? \- ES 6.x中一个index只能有一种type。

??????????????????????????????????\- ES 7.x以后,将逐步移除type这个概念,现在的操作已经不再使用,默认_doc

7.索引和搜索流程

?????????

?

二、ElasticSearch的使用

?1.windows中运行

????????bin目录中双击运行elasticsearch.bat即可启动

????????注:如果启动出现闪退,在 config目录中修改 elasticsearch.yml ,在最后添加一行配置:

????????????????xpack.ml.enabled: false

??????? 拓展:

????????Elastic官网:开源搜索:Elasticsearch、ELK Stack 和 Kibana 的开发者 | Elastic

????????Elasticsearch官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic

????????Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,这三个产品就是大家常说的ELK技术栈。

????????ELK常用框架:

?????????

?2.检查是否运行成功

????????访问http://localhost:9200/ 可以看到节点信息。
?

?3.关于Head插件

????????下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

??????? 可再Chrome浏览器操作、查看数据库。

?????????

? 4.安装ik分词器

??????? ik分词器可以分割中文语句。

????????下载地址:Releases · medcl/elasticsearch-analysis-ik · GitHub

??????? 注意:需要下载与ES对应的版本

????????在elasticsearch-x.x.x\plugins中新建ik文件夹,复制elasticsearch-analysis-ik-x.x.x.zipik文件夹中,然后解压,注意,不要复制或解压到ik目录外,将解压出的·elasticsearch目录下的所有文件剪切到ik目录中,重新启动ES,可以看到分词插件被加载了:

?????????

?????????强调: es插件目录中一个目录就是一个插件

?????????

?????????

?

在Head中测试如下命令:

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

??

?5.Kibana

??????? 简介:Kibana是es的可视化工具

????????下载地址:Install Kibana | Kibana Guide [7.15] | Elastic

??????? 注意:版本需要和es保持一致

??????? 启动:双击运行bin目录中的kibana.bat即可启动

??????? 测试:打开浏览器:? http://localhost:5601/?

??????? 在kibana左侧做到Dev Tools,输入请求命令

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

?????????测试结果如下:

?

?6. es的增删改查操作

????????Elasticsearch提供了Rest风格的API,即Http请求接口,而且也提供了各种语言的客户端API

????????文档地址:Quick start | Elasticsearch Guide [7.15] | Elastic

????????中文文档:Elasticsearch: 权威指南 | Elastic

??????? 6.1 操作索引库

??????????????? 基本概念:

????????????????????????Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。

????????????????????????对比关系:

?????????????????????????????????

?未完待续.......

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:35:16  更:2021-10-11 17:36:57 
 
开发: 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年11日历 -2024/11/24 0:51:02-

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