PISA 高性能索引和学术搜索开源项目

我要开发同款
白开水不加糖2022年06月30日
89阅读
开发技术C/C++
所属分类搜索引擎、程序开发、教学科研相关
授权协议Apache-2.0

作品详情

PISA(PerformantIndexesandSearchforAcademia)是一个文本搜索引擎,能够在大规模文档集合上运行。它允许研究人员使用最先进的技术进行试验,从而为快速开发提供理想的环境。

下面列出了PISA的一些功能:

用C++编写以提高性能;解析、索引和分片功能;实现了许多索引压缩方法;实现了许多查询处理算法;实施文件重新排序;Free和open-source许可;

PISA是一个文本搜索引擎,尽管"PISAProject"是一套工具,帮助实验索引和查询处理。给定一个文本集合,PISA可以在这个语料库上建立一个倒置的索引,允许语料库被搜索到。简单地说,倒置索引是一种有效的数据结构,它通过为每个独特的术语存储一个文档列表来代表文档语料库(见这里)。在查询时,PISA将其索引存储在主内存中,以便快速检索。

从一个文档的语料库开始,例如维基百科,PISA可以建立一个倒置的索引,使我们能够快速搜索维基百科的集合。在最基本的层面上,支持BooleanAND和ORqueries 

除了简单的 Booleanmatching,如上所述,我们实际上可以对文档进行排名。在不深入了解细节的情况下,文档的排名是通过一些函数来进行的,这些函数假定一个词越是罕见,这个词就越重要。这些排名器还假定,一个词在文档中出现的频率越高,文档就越可能是关于这个词的。最后,较长的文档包含更多的词,因此比短的文档更有可能得到更高的分数,所以要进行规范化处理,以确保所有的文档都被平等对待。

PISA的主要用例是进行实验以进一步了解信息检索(IR)领域。在IR领域内,有各种重要的研究方向被关注,从提高结果质量(有效性)到提高搜索系统的可扩展性和效率。PISA主要关注IR研究的可扩展性和效率方面,这就是为什么PISA代表“PerformantIndexesandSearchforAcademia”。简而言之,PISA是一个开发高效搜索创新的平台。

虽然PISA专注于成为实验的基础,但它也非常适合用作简单的通用索引和搜索系统。

PISA可以处理大型文本集合。例如,PISA可以轻松索引ClueWeb09B或ClueWeb12B语料库,每个语料库包含超过5000万个Web文档和接近500GiB的压缩文本数据,根据压缩编解码器的不同,索引范围在10-40GiB用过的。根据一些细节,这些索引可以在大约10-20小时内从头开始构建。此外,更大的集合可以通过索引分片来处理,索引分片将大型语料库分成更小的子集(分片)。然而,PISA是一个内存系统,旨在基于完全驻留在主内存中的索引来提供查询服务。因此,可能的规模将受到主存储器的限制。

PISA是由 GiuseppeOttaviano发起的 ds2i 项目的一个分支。ds2i项目包含IR中许多重要的效率创新的源代码,包括“PartitionedElias-Fano”压缩方法。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论