倒排索引

一.倒排索引的优势和特点
1.高效的文本搜索。由于倒排索引通过单词快速定位到含有该单词的文档,所以搜索效率非常高。与传统的全文搜索方式相比,倒排索引不需要对每个文档进行扫描,因此可以在大型数据集上快速进行搜索
2.支持高级搜索功能。倒排索引可以使用词间关系、词条权重等信息对搜索结果进行精确匹配、布尔运算和相关度排序
3.可定制的分析和处理。倒排索引支持构建和应用自定义分析器和过滤器,可以针对不同用例和词汇集的需求灵活处理
4.灵活的扩展性。倒排索引支持横向扩展,可以水平分割和复制数据,这样可以轻松地扩大索引容量和提高搜索效率
5.支持分词。分词可以将连续字母或数字序列划分为有意义的词组或单个词汇,这些分词信息可以被用于构建索引,从而实现更加精确的搜索结果
6.支持位置信息。倒排索引可以记录每个单词在句子中的位置,从而支持短语搜索和文本摘要等功能
二.倒排索引
- 先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引
- 对搜索内容进行分词,把分词后得到一个关键词列表,根据关键词去词条库中匹配,再找到对应的文档ID列表
- 然后根据文档ID列表,找到对应的文档信息
总结:先将被查询的文档进行分词,(可以自己设置特殊的分词与禁用的分词),然后根据分出的词条形成唯一id索引,将分出的词条与id索引存入词条库,当需要搜索时,对搜索内容也进行分词,内容分词后得到关键词列表,根据关键词列表去词条库中找对应的id索引,再根据ID索引去文档中找对应的文档信息
三.创建索引
1、需要指定字段的类型,在Mapping中去指定,用type属性
type:字段数据类型,常见的简单类型有:
- 字符串:
text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)- 数值:
long、integer、short、byte、double、float、- 布尔:
boolean- 日期:
date- 对象:
object- 经纬度:
location(lon,lat)
2.其他相关信息index:是否创建索引,默认为trueanalyzer:使用哪种分词策略【ik_smart、ik_max_word】properties:type为object时会用到,该字段的子字段

浙公网安备 33010602011771号