jsearch的索引文件结构

标签: search | 发表时间:2015-05-19 04:22 | 作者:
出处:http://my.oschina.net/apdplat

jsearch是一个高性能的全文检索工具包,基于倒排索引,基于java8,类似于lucene,但更轻量级。


jsearch的索引文件结构定义如下:

    1、一个词的索引由 =分割的三部分组成:
       
第一部分是词
       
第二部分是这个词在多少个文档中出现过(上限 1000
       
第三部分是倒排表
    2
、倒排表由多个倒排表项目组成,倒排表项目之间使用 |分割
    3
、倒排表项目的组成又分为三部分,用 _分割:
       
第一部分是文档 ID
       
第二部分是词频
       
第三部分是词的位置
    4
、词的位置用 :分割
   
   
例如 :
    shingles=31=47466_1_2|1_1_6|1_1_1|2_1_5|67_1_1|903_1_3|17_1_5|1_3_4:6:11
   
表示词 shingles 的索引:
   
词: shingles
   
31 个文档包含 shingles 这个词
   
包含这个词的第一篇文档的 ID47466
    shingles
的词频是 1,出现 shingles 的位置是 2
   
文档内容为:
    A better solution is to use shingles, which are compound tokens created
    from multiple adjacent tokens.
   
对文档内容进行分词并移除停用词之后的结果为:
    [solution, shingles, compound, tokens, created, multiple, adjacent, tokens]
   
   
包含这个词的第二篇文档的 ID47466+1=47467
    shingles
的词频是 1,出现 shingles 的位置是 6
   
文档内容为:
    Lucene has a sandbox module that simplifies adding shingles to your index,
    described in section 8.3.2
   
对文档内容进行分词并移除停用词之后的结果为:
    [lucene, sandbox, module, simplifies, adding, shingles, index, section]
   
   
包含这个词的第八篇文档的 ID47466+1+1+2+67+903+17+1=48458
    shingles
的词频是 3,出现 shingles 的位置分别是 4611
   
文档内容为:
    For example the sentence “please divide this sentence into shingles”
    might be tokenized into the shingles “please divide”, “divide this”,
    “this sentence”, “sentence into” and “into shingles”
   
对文档内容进行分词并移除停用词之后的结果为:
    [sentence, divide, sentence, shingles, tokenized, shingles, divide, divide, sentence, sentence, shingles]
   
   
这里需要注意的是位置不是和原文一一对应的,而是和去除停用词后的位置一一对应的
    停用词的定义看 这里的链接
分词使用 word分词提供的 针对纯英文文本的分词器


   
    





相关 [jsearch 索引 文件结构] 推荐:

jsearch的索引文件结构

- - 杨尚川的个人页面
jsearch是一个高性能的全文检索工具包,基于倒排索引,基于java8,类似于lucene,但更轻量级. jsearch的索引文件结构定义如下:.     1、一个词的索引由 =分割的三部分组成:.         第二部分是这个词在多少个文档中出现过(上限 1000).         第三部分是倒排表.

Linux 文件结构

- Shiina Luce - OSMSG
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现. 做为参考,这是 Fedora 16 Beta i686 上的文件结构:.

Linux 文件结构 — LinuxTOY

- oak - linuxtoy.org
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现.

Java的 class文件结构

- - Java - 编程语言 - ITeye博客
Java-class文件结构.        我们都知道我们现在写的源代码计算机是不认识的,我们需要根据指定的编译器进行编译-连接-执行,这样才是我们想要的结果,所以计算机只能认识0或者1 ,那么如何与操作系统或者机器指令无关的程序能执行,那么在操作系统以及机器指令之上的那就是虚拟机了,这样我们编写的代码不再是最终形成二进制本地指令代码,而是一种在操作系统和机器指令之上的虚拟机规定的文件格式.

EXE文件结构及读取方法

- - CSDN博客推荐文章
     EXE File英文全名executable file ,译作可执行文件,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序. 如记事本程序notepad.exe ,可以用来编辑文档,如:测试.txt双击打开notepad.exe记事本程序来进行编辑处理.

ElasticSearch 索引 VS MySQL 索引

- - crossoverJie's Blog
这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的. 这甚至比在我本地使用 MySQL 通过主键的查询速度还快. 这类问题网上很多答案,大概意思呢如下:. Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于.

SQL Server--索引

- - CSDN博客推荐文章
         1,概念:  数据库索引是对数据表中一个或多个列的值进行排序的结构,就像一本书的目录一样,索引提供了在行中快速查询特定行的能力..             2.1优点:  1,大大加快搜索数据的速度,这是引入索引的主要原因..                             2,创建唯一性索引,保证数据库表中每一行数据的唯一性..

MongoDB 索引

- - 博客园_首页
索引是用来加快查询的,数据库索引与数据的索引类似,有了索引就不需要翻遍整本书,数据库可以直接在索引中查找,. 使得查询速度很快,在索引中找到条目后,就可以直接跳转到目标文档的位置.. 要掌握如何为查询配置最佳索引会有些难度.. MongoDB索引几乎和关系型数据库的索引一样.绝大数优化关系型数据库索引的技巧同样适用于MongoDB..

倒排索引

- - ITeye博客
倒排索引是文档检索系统中最常见的数据结构,被广泛的应用于搜索引擎. 它是一种根据内容查找文档的方式. 由于不是根据文档来找内容,而是根据进行了相反的操作,因此叫做倒排索引. 倒排索引的一个简单结构如下图所示:. 最常见的是使用词频作为权重,即单词在一个文档中出现的次数. 因此,当搜索条件为“MapReduce”“is”“simple”的时候,对应的集合为{(0.txt,1),(1.txt,1),(2.txt,2)}且{(0.txt,1),(1.txt,2)}且{(0.txt,1),(1.txt,1)}={0.txt,1.txt}.