大家都知道ES是基于Lucene的,说这么多ES,肯定还是得了解一下Lucene的
1 什么是全文检索
先说全文检索
1.1 结构化数据与非结构化数据
我们生活中的数据总体分为两种:结构化数据和非结构化数据。
- 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等
- 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件
1.2 搜索结构化数据和非结构化数据
- 使用SQL语言专门搜索结构化的数据
- 使用ES/Lucene/Solor建立倒排索引,根据关键字就可以搜索一些非结构化的数据
1.3 全文检索
全文检索是指:
- 通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及出现的次数
- 用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置、出现的次数返回给用户,因为有了具体文本的位置,所以就可以将具体内容读取出来了
- 类似于通过字典中的检索字表查字的过程