• 3.ElasticSearch的倒排索引


    一. 正向索引

    常规的索引建立方式
    文档---> 关键词的映射过程(正向索引)

    比如: 我有很多个文章,如果想查询其中几个文章是否含有刘耀这个关键词,那么我就需要打开所以文章,找到里面含义刘耀的文章.这就是正向索引

    在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。(来自百度)

    得到正向索引的结构如下:

    “文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。

    二、倒排索引

    倒排方向建立索引

    关键词---> 文档的映射
    把正向索引的结果重新构造成倒排索引(反向索引)

    如图:

    图1:

    WordID 单词 倒排文档列表(DocId)
    1 刘耀 (1,❤️,11>),(2,<7>),(3,<9>)
    2 Python (1,<6>), (2,<1>), (3,<3>), (4,<9>)
    3 Java (3,<2>), (5, <6>)
    4 go (3, <1,12>), (3,❤️,4>)
    5 js (1, <1,16>), (5, <1>)

    图2:

    WordID 单词 倒排文档列表(DocId),TF
    1 刘耀 (1,❤️,11>,2),(2,<7>),(3,<9>,2)
    2 Python (1,<6>,10), (2,<1>,2), (3,<3>,22), (4,<9>,12)
    3 Java (3,<2>,12), (5, <6>,2)
    4 go (3, <1,12>,2), (3,❤️,4>,2)
    5 js (1, <1, 16>,2), (5, <1>,2)

    把文档和单词进行组合运算
    TF代表频率的意思

    把每个出现关键词的文档都记录该文档的ID,<>括号里面的是这个关键词出现的位置,最后一位数字是出现的频率。

    当我根据关键词查找 例如查找刘耀,就可以直接搜到对应文档的ID

  • 相关阅读:
    Word Ladder
    Android下使用dlopen函数动态调用.so链接库
    Android系统中调试动态链接库so文件的步骤
    eclipse下如何将android项目生成apk
    ACE_Task::putq
    static_cast 与reinterpret_cast
    Linux创建与解压zip, tar, tar.gz,tar.bz2文件
    SVN Externals Definitions[类似于软链接的功能]
    有效运用auto_ptr
    字符串匹配算法 之 基于DFA(确定性有限自动机)的字符串模式匹配算法
  • 原文地址:https://www.cnblogs.com/liu-yao/p/3ElasticSearch-de-dao-pai-suo-yin.html
Copyright © 2020-2023  润新知