倒排索引


一.倒排索引的优势和特点
1.高效的文本搜索。由于倒排索引通过单词快速定位到含有该单词的文档,所以搜索效率非常高。与传统的全文搜索方式相比,倒排索引不需要对每个文档进行扫描,因此可以在大型数据集上快速进行搜索
2.支持高级搜索功能。倒排索引可以使用词间关系、词条权重等信息对搜索结果进行精确匹配、布尔运算和相关度排序
3.可定制的分析和处理。倒排索引支持构建和应用自定义分析器和过滤器,可以针对不同用例和词汇集的需求灵活处理
4.灵活的扩展性。倒排索引支持横向扩展,可以水平分割和复制数据,这样可以轻松地扩大索引容量和提高搜索效率
5.支持分词。分词可以将连续字母或数字序列划分为有意义的词组或单个词汇,这些分词信息可以被用于构建索引,从而实现更加精确的搜索结果
6.支持位置信息。倒排索引可以记录每个单词在句子中的位置,从而支持短语搜索和文本摘要等功能

二.倒排索引

  1. 先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引
  2. 对搜索内容进行分词,把分词后得到一个关键词列表,根据关键词去词条库中匹配,再找到对应的文档ID列表
  3. 然后根据文档ID列表,找到对应的文档信息
    总结:先将被查询的文档进行分词,(可以自己设置特殊的分词与禁用的分词),然后根据分出的词条形成唯一id索引,将分出的词条与id索引存入词条库,当需要搜索时,对搜索内容也进行分词,内容分词后得到关键词列表,根据关键词列表去词条库中找对应的id索引,再根据ID索引去文档中找对应的文档信息

三.创建索引
1、需要指定字段的类型,在Mapping中去指定,用type属性

  • type:字段数据类型,常见的简单类型有:
    • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
    • 数值:longintegershortbytedoublefloat
    • 布尔:boolean
    • 日期:date
    • 对象:object
    • 经纬度:location (lon,lat)
      2.其他相关信息
  • index:是否创建索引,默认为true
  • analyzer:使用哪种分词策略【ik_smart、ik_max_word】
  • properties:type为object时会用到,该字段的子字段
posted @ 2024-10-16 15:31  qxr+  阅读(36)  评论(0)    收藏  举报