| |
|
开发:
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概念: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:数据库不支持相关性搜索,数据模糊查询后,放回结果是根据表中存储顺序返回的,于是便会出现查询出大量毫无相关内容。- |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |