Elasticsearch 入门篇
一、Elasticsearch :分布式、高性能、高可用、可伸缩的搜索和分析系统;
特点: 分布式、搜索、数据分析;
一、Elasticsearch的功能
(1)分布式的搜索引擎和数据分析引擎
(2)全文检索,结构化检索,数据分析
(3)对海量数据进行近实时的处理
二、Elasticsearch的适用场景
(1)维基百科,全文检索,高亮,搜索推荐
(2)The Guardian(国外新闻网站),用户日志+社交网络数据,分析,新闻文章的公众反馈
(3)Srack Overflow(国外的程序异常讨论论坛),全文检索,搜索相关问题和答案
(4)
(5)
(6)
(7)
(8)
(9)
假设数据库里有100万条数据:
数据库查询:
按照之前的思路,需要扫描100万次,而且每次扫描,都需要匹配那个文本所有的字符,确认是否包含搜索的关键词,而且还不能将搜索词拆解开来进行检索
倒排索引:如果有100万条数据,拆解出来的词语,假设有1000万个词语,那么在倒排索引中,就有1000万行,我们可能并不需要搜索1000万次。
很可能在第一次的时候,就可以找到这个搜索词对应的数据;也可能在第100次或在第1000次
Lucene: 就是一个jar包,里面包含了封装好的各种建立倒排索引,以及进行搜索的代码,包括各种算法。我们进行开发的时候,直接引入lucene的jar, 然后基于lucene进行开发就好;
用lucene,我们就可以去将已有的数据建立索引,lucene会在本地磁盘上面,给我们组织索引的数据结构;另外,我们也可以用lucene提供的功能和api来针对磁盘上的索引数据,进行搜索;
es工作原理:
es文档管理:
es索引管理:
es搜索
es聚合分析:
es分词:
es数据建模: