Elasticsearch 是一个分布式的开源搜索和分析引擎(以下简称ES),适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。主要用于应用程序搜索、网站搜索、企业搜索、日志处理和分析、应用程序性能检测等。
为什么要用Elasticsearch涉及到like的大数据量模糊查询,如果是直接对数据库进行查询的话,由于like模糊查询无法对数据列应用索引,所以需要一条条字符串进行全表扫描、比对查询,效率就非常低下。所以在Java中,解决大数据量的模糊查询,就会用到建立索引库,全文检索的查询技术,即ES。
Elasticsearch的倒排索引Elasticsearch 使用的是一种名为倒排索引的数据结构,也叫反向索引(inverted index)。
通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。通过“关键词——文档”形式的一种映射结构,实现了通过物品属性信息对物品进行映射时,可以帮助用户快速定位到目标信息,从而极大降低了信息获取难度。
举个例子,如以下文档:
文档编号(id) 文档内容 1 我喜欢数学 2 我喜欢编程 3 我考试数学成绩很好 4 编程太难了