zoukankan      html  css  js  c++  java
  • sphinx数据文件简析

    Sphinx使用的文件包括 “sph”, “spa”, “spi”, “spd”, “spp”, “spm” ,还有锁文件(.spl)。其中sph是系统的配置文件。其它则为索引文件。

    l Spi 文件:保存WordId及指向此WordId对应的文档信息在spd文件的指针。Spi文件在检索程序启动时完全加载入内存。Spi文件是分块的,块内排序,块之间也排序。分块的目的应该是为了快速检索到WordId,因为Spi中的WordId是变长压缩的,索引需要先在块级别做二分定位,再在快内解压缩查找。

    文件结构,每块中结构,wordId实际存储的是差值

    WordId

    SpdFilePointer

    DocNum

    HitNum

    2 Spd文件:

    文件结构

    DocID

    [DocInfo]

    HitFilePointer

    FieldNum

    HitNum

    3 Spp文件

    文件结构

    HitPos

    4 Spa文件:存储DocInfo的文件,检索程序启动时会把此文件加载如内存,sphinx可以指定DocInfo的存储方式,

    ① 存储到spd文件中(InLine)

    ②. 另外单独存储。指定此,就会生成spa文件

    文件结构:

    DocId

    DocInfo

    5 Spm文件:在DocInfo中,有一种特殊的属性,叫MVA,多值属性。Sphinx对此属性特殊处理,需要存储在spm文件中。检索程序启动时会把此文件加载如内存。此(MVA)属性在DocInfo对应位置存储其在此文件中的字节偏移量。

    文件结构:

    DocId

    Anum,A1,A2,…,An

    Bnum,B1,B2,…,Bn

    由于在第一趟扫描过程中会出现WordID相同的不同Hits(不同文档或者不同位置不同字段),二趟前会根据WordID排序,WordID相同的Hits会连续出现并合并(合并到第一次出现的相同WordID中)

  • 相关阅读:
    html常用标签及示例
    判断一个数是否是素数的讨论
    图像的空间域变化
    图像增强的点运算(一)
    字符串匹配——KMP
    AcWing1134最短路计数(spfa)
    AcWing1137拯救大兵瑞恩(双端队列搜索,状态压缩,分层图最短路)
    AcWing1175电路维修(双端队列+搜索)
    AcWing1137选择最佳线路(最短路)
    AcWing342道路与航线(dijkstra+拓扑排序)
  • 原文地址:https://www.cnblogs.com/Jerry-blog/p/5044602.html
Copyright © 2011-2022 走看看