PISA高性能索引和学术搜索

联合创作 · 2023-09-29 03:12

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

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

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

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

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

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

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

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

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

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

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报