文档章节

jsearch的索引文件结构

杨尚川
 杨尚川
发布于 2015/05/19 04:22
字数 572
阅读 475
收藏 4

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分词提供的针对纯英文文本的分词器


   
    





© 著作权归作者所有

杨尚川

杨尚川

粉丝 1103
博文 220
码字总数 1624053
作品 12
东城
架构师
私信 提问
jsearch v1.0 发布,基于java8的高性能全文检索工具包

jsearch是一个高性能的全文检索工具包,基于倒排索引,基于java8,类似于lucene,但更轻量级。 jsearch起源于superword项目。在superword项目的辅助阅读模块中,需要对大量的PDF电子文本进行...

杨尚川
2015/11/25
2.1K
2
全文检索工具包--jsearch

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

杨尚川
2015/05/17
2.1K
0
jSearch(聚搜) v0.4.2 发布,增加新版本提醒

今天专门更新了一个小版本,但是很重要啊。。。 之前竟然忘了版本提醒功能,大意了。。。 更新日志:jSearch-v0.4.2 新增新版本提醒功能 一定要更新哦: https://github.com/dubox/jSearch/r...

dubox
03/04
574
0
开源项目中如何同时支持Git@OSC和Github

我的开源项目托管在Github,同时在Git@OSC也有备份,有两个地方,是不是很麻烦呢?非也非也,下面介绍一下我是怎么做的。 1、先在Github新建一个项目,点击Github主页右上角的加号 -> New R...

杨尚川
2015/05/17
1K
6
jSearch(聚搜) 一款专注内容的chrome搜索扩展

jSearch jSearch(聚搜)是一款专注内容的chrome搜索扩展,一次搜索聚合多平台内容; 支持 google,百度,Bing(国际版)三大搜索引擎 支持自定义搜索站点 支持公众号&公众号文章搜索 收藏夹搜索、...

dubox
02/26
176
0

没有更多内容

加载失败,请刷新页面

加载更多

postman批量测试

postman批量调用: 先单个调用,成功了 再save为collection 再点击三角形,点击run 设置1000次,run就可以 见《postman批量测试.docx》

Danni3
38分钟前
8
0
js 对象操作 js 对象和对象赋值 去除关联性 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

当我们在项目需要 复制一个对象到另一个对象并且 被复制的对象不能受复制后的对象的影响。 我先总结下 我们哪些方法可以复制对象 // 直接赋值var obj1 = { a: 1 };var obj2 = obj1;...

xiaogg
39分钟前
7
0
Go微服务全链路跟踪详解

在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪。 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链。 该ID称为C...

倚天码农
53分钟前
9
0
QML笔记-对QML中信号与槽的基本认识

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq78442761/article/details/90753986 目录 基本概念 演示...

shzwork
今天
5
0
SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

xiangyunyan
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部