zoukankan      html  css  js  c++  java
  • elasticsearch搜索 倒排索引

    日常如果我们想在一本书中找一句存在的句子,这句话你不知道它在哪个章节,那么你只能一章一章的翻看,
    这个映射关系是从文档到关键词,因为我们是翻阅不同的章节文档来检索哪里出现了这么一句话。
    而倒排索引是建立关键词到文档的映射关系,给你几个关键词,找出包含关键词的文档。

    倒排索引源于实际应用中需要根据属性值(关键字)来查找记录,lucene是基于倒排索引实现的。
    这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。
    由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。

    倒排索引的组成

    倒排索引由两个部分组成:单词词典和倒排文件。

    倒排文件

    所有单词的倒排列表顺序的存储在磁盘的某个文件里,这个文件即被称为倒排文件,倒排文件是存储倒排索引的物理文件。

    单词词典

    单词词典是由文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。
    单词词典是倒排索引中非常重要的组成部分,它是用来维护文档集合中所有单词的相关信息,同时用来记载某个单词对应的倒排列表在倒排文件中的位置信息。在支持搜索时,根据用户的查询词,去单词词典里查询,就能够获得相应的倒排列表。
    对于一个规模很大的文档集合来说,可能包含了几十万甚至上百万的不同单词,
    快速定位某个单词直接决定搜索的响应速度,所以我们需要很高效的数据结构对单词词典进行构建和查找。
    常用的数据结构包含哈希加链表和树形词典结构。

  • 相关阅读:
    C# 操作XML文件
    参数化查询为什么能够防止SQL注入
    引用asp.net母版页后,母版页和内容页的页面事件执行顺序
    简单的数据库时间查询
    WCFService Configuration Editor的使用
    显示、隐藏计算机Administrator账户
    在ASP程序中调用Web Service
    ASP.NET WAP开发
    Microsoft SQL Server 2005 错误 29503。SQL Server 服务无法启动
    ASPNET2.0中读写Cookie的方法!
  • 原文地址:https://www.cnblogs.com/peteremperor/p/13984549.html
Copyright © 2011-2022 走看看