通过 Slack 联系:
PISA 是一个能够在大规模文档集合上运行的文本搜索引擎。它允许研究人员尝试最先进的技术,为快速开发提供理想的环境。
PISA 的一些功能如下:
PISA 是一个文本搜索引擎,尽管“PISA 项目”是一组帮助实验索引和查询处理的工具。给定一个文本集合,PISA 可以在此语料库上构建倒排索引,从而允许搜索该语料库。简而言之,倒排索引是一种高效的数据结构,它通过存储每个唯一术语的文档列表来表示文档语料库(请参见此处)。在查询时,PISA 将其索引存储在主内存中以便快速检索。
简而言之,PISA 是一个文本搜索引擎。从文档语料库(例如维基百科)开始,PISA 可以构建倒排索引,使我们能够快速搜索维基百科集合。在最基本的级别上,支持布尔AND
和OR
查询。想象一下,我们想要找到与查询“乌龙茶”匹配的所有维基百科文档 - 我们可以运行布尔连接词( oolong AND
tea )。相反,我们可能对查找包含乌龙茶或茶(或两者)的文档感兴趣,在这种情况下,我们可以运行布尔析取( oolong OR
tea )。
除了如上所述的简单布尔匹配之外,我们实际上还可以对文档进行排名。无需赘述,文档按函数进行排名,假设术语越罕见,该词就越重要。这些排名者还假设某个单词在文档中出现的频率越高,该文档就越有可能与该单词相关。最后,较长的文档包含更多的单词,因此比较短的文档更有可能获得更高的分数,因此进行规范化以确保所有文档得到平等对待。感兴趣的读者可能希望查看 TF/IDF 维基百科文章以了解有关这种排名方法的更多信息。
例如,这与搜索grep
的类型不同。这与流行的 Lucene 搜索引擎关系更密切,尽管我们目前支持的查询类型不如 Lucene 那么多。如前所述,PISA 中的主要基础数据结构是倒排索引。对于每个术语,倒排索引存储包含该术语的文档列表。可以快速遍历这些列表以查找与查询项匹配的文档,然后可以对这些文档进行评分、排名并返回给用户。
PISA 的主要用例是进行实验以进一步了解信息检索 (IR) 领域。在信息检索领域,有各种重要的研究方向,从提高结果质量(有效性)到提高搜索系统的可扩展性和效率。 PISA 主要关注 IR 研究的可扩展性和效率方面,这也是 PISA 代表“学术界绩效索引和搜索”的原因。简而言之,PISA 是一个开发高效搜索创新的平台。
虽然 PISA 专注于成为实验基础,但它也非常适合用作简单的通用索引和搜索系统。
PISA 可以处理大型文本集合。例如,PISA 可以轻松索引 ClueWeb09B 或 ClueWeb12B 语料库,每个语料库包含超过 5000 万个 Web 文档和接近 500 GiB 的压缩文本数据,导致索引大小在 10-40 GiB 范围内,具体取决于压缩编解码器用过的。根据一些细节,这些索引可以在大约 10-20 小时内从头开始构建。此外,可以通过索引分片来处理较大的集合,索引分片将大型语料库分解为较小的子集(分片)。然而,我们确实注意到,PISA 是一个内存系统,旨在基于完全驻留在主内存中的索引来提供查询服务。因此,可能的规模将受到主存储器的限制。
最近的一些作品以 PISA 为基准。例如,Antonio Mallia、Michal Siedlaczek 和 Torsten Suel 发表在 ECIR 2019 上的《索引压缩和 DAAT 查询处理方法的实验研究》表明,PISA 能够返回前 10 和前 1000 个文档,平均延迟为对于包含 5000 万个 Web 文档的集合,范围分别为 10-40 和 20-50毫秒。
PISA 也被纳入 Tantivy 的搜索引擎基准游戏中,该游戏的竞争对手还有 Tantivy、Lucene 和 Rucene。
PISA 是 Giuseppe Ottaviano 发起的 ds2i 项目的一个分支。 ds2i 项目包含 IR 中许多重要效率创新的源代码,包括“分区 Elias-Fano”压缩方法。
对于那些有兴趣使用 PISA 的人,我们建议查看以下资源:
如果您想参与 PISA,请查看我们的贡献页面。
如果您在研究论文中使用 PISA,请引用以下参考文献:
@inproceedings{MSMS2019,
author = {Antonio Mallia and Michal Siedlaczek and Joel Mackenzie and Torsten Suel},
title = {{PISA:} Performant Indexes and Search for Academia},
booktitle = {Proceedings of the Open-Source {IR} Replicability Challenge co-located
with 42nd International {ACM} {SIGIR} Conference on Research and Development
in Information Retrieval, OSIRRC@SIGIR 2019, Paris, France, July 25,
2019.},
pages = {50--56},
year = {2019},
url = {http://ceur-ws.org/Vol-2409/docker08.pdf}
}