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简介

目录

1、ElasticSearch概念:

2、全文检索:

①数据分类:

②全文检索概念:

3、全文检索实现过程:

①全文检索流程图:

②创建索引:

③创建文档对象:

④文档分析:

⑤创建索引:

⑥查询索引

⑦用户查询接口

⑧创建查询对象

⑨执行查询

⑩渲染结果

4、ElasticSearch和MySQL区别

①响应时间

②分词

③相关性


1、ElasticSearch概念:

ElasticSearch简称es,es是一个开源的高扩展的分布式全文检索引擎,通过创建的索引可以快速检索数据,同时本身扩展性能高,可以扩展到上百台服务器。

2、全文检索:

①数据分类:

(1)结构化数据:有固定格式和固定长度的数据,如数据库数据,元数据;

(2)非结构化数据:无固定格式和不定长的数据,如邮件、word文档等磁盘文件。

②全文检索概念:

(1)将非结构化数据中一部分信息提取出来,重新组合,使其变得结构化,通过对这一部分有结构化数据的搜索,找到对应非结构化数据,从而达到较快搜索目的。这部分从非结构数据中提取然后重组的数据就是索引

如:字典中,汉字的拼音和部首就是索引,通过汉字拼音和部首可以快速找到汉字位置。

(2)先建立索引,然后对索引进行搜索的过程即全文检索。建立索引非常耗时,但索引一旦创建,便可以多次使用,全文检索主要处理的是查询。

3、全文检索实现过程:

①全文检索流程图:

全文检索分为:创建索引和查询索引两个过程。

(1)创建索引:将现实世界的结构化数据或非结构化数据,进行数据提取然后重新组合,创建索引过程。

(2)索引查询:用户查询请求,搜索创建的索引,并返回结果的过程。

②创建索引:

对文档索引过程中,将用户要将搜索的内容提取出来,进行索引创建,索引存储在索引库中。

③创建文档对象:

获取的原始内容中目的是为了索引,在索引前需要将原始内容创建为文档,文档包括一个个域,域中存储属性。文档中有多个域,每个文档都有一个唯一标识,即id。

例:磁盘上一个文件可以看为一个文档,则该文件的文件名,文件大小,文件内容,文件路径即为文档的域。

④文档分析:

将原始内容创建为包含多个域的文档,还需对文档中域的内容进行分析,从而对域中内容进行分词。

⑤创建索引:

(1)索引目的是搜索,通过搜索索引词汇从而找到对应文档。

(2)倒排索引结构:通过索引找到对应文档。

(3)正排索引:根据文档到关键信息查询文档,只能顺序查找,数据量大查询效率低。

正排索引转化为倒排索引如下图:

⑥查询索引

查询索引即为搜索过程,用户通过输入关键字,从索引中进行搜索过程。通过关键字搜索索引,索引查找到对应文档内容,从而搜索到对应内容。?

⑦用户查询接口

全文检索提供用户搜索的界面供用户输入关键字,搜索完成展示结果。如下图:

?

⑧创建查询对象

用户输入关键字查询之前,需要先构建一个查询对象,查询对象可以指定查询的域,关键字等,查询对象会生成具体语法。

⑨执行查询

搜索过程中,通过关键字在倒排索引词典中查找索引,从而找到索引所链接的文档链表。

⑩渲染结果

以一个友好界面将结果展示给用户,用户根据搜索结果找到自己所需要的信息。

4、ElasticSearch和MySQL区别

①响应时间

(1)ElasticSearch:它是基于倒排索引,TB级数据在毫秒级就可以返回搜索结果。

(2)mysql:关键字模糊查询时,数据库需啊哟遍历整张表,数据量越大,查询效率越低。

(3)当用户输入关键字:手机,如下图数据:

elasticSearch会立即返回文档f,g,不用花费多余时间在其他文档上;

mysql则需要从文档a一直遍历到文档g,极大降低查询效率。

②分词

(1)ElasticSearch:用户使用elasticSearch进行搜索时,elasticSearch会自动分好词;

如:输入”四川火锅“时,elasticSearch会做两件事:一是将”四川火锅“分为”火锅“和”四川“两个词;二是查找包这两个词的文档。

(2)mysql:数据库不支持分词功能,人工开发耗时耗力,组合词检索很难完成。

如:输入”四川火锅”时,数据库只会对“四川火锅”这四个字进行模糊查询,“四川好吃的火锅”这时查询不到的。

③相关性

(1)ElasticSearch:es支持相关性评分,通过合理优化,es可以将结果由评分高到底排列展示给用户,评分越高,表示相关性越高,满足用户需求。

如:搜索“跑步”,带有“跑步”的信息要比带有“跑”的信息靠前

(2)mysql:数据库不支持相关性搜索,数据模糊查询后,放回结果是根据表中存储顺序返回的,于是便会出现查询出大量毫无相关内容。-

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

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