当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

PISA

高性能索引和学术搜索
授权协议 Apache-2.0
开发语言 C/C++ Python
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 翟宏放
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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”压缩方法。

  • http://www.oecd.org/pisa/   国际学生评估 PISA类测试:一种国际性的科学的评价方法,可强化对考生知识面、综合分析、创新素养方面的考查。 评估内容 第一次PISA评估于2000年首次举办,此后每3年举行一次。评估主要分为3个领域:阅读素养、数学素养及科学素养,由这3项组成一评估循环核心,在每一个评核周期里,有2/3的时间会对其中一项领域进行深入评估,其他两项则进行综合评

  • “国际高中指南”,给你国际学校选择一站式教育服务,最新国际学校资讯,最全面国际高中课程详情,都能通过“国际高中指南”为你解决,帮助你第一时间获取国际学校动态。 为什么你会为孩子选择国际学校?因为这里的教育模式、课程体系能够帮助孩子更早的确立自己的兴趣爱好甚至未来的发展目标,能够帮助孩子全方位提升阅读能力、逻辑思维、数理分析能力等等。那这些能力可以通过什么方式去衡量呢?PISA测试。 【PISA】

  • 剪枝之后,我们可以根据控制依赖关系得到一个初始的层级,我们记为floor。例如,终点为floor的第一层,由终点生成的前继节点为floor的第二层,以此类推。 按照题意,仅满足控制依赖关系是可以放在同层的,因此我们不妨先将所有的节点放在同一层。然后再根据数据依赖关系和资源约束关系对节点的层级进行调整。调整后的层级我们记为cellar。例如,floor的第二层中有某个元素Q与它在第一层中的后继节点P

  • 《21世纪经济报道》12月13日消息,在北京金融行业工作的王鑫如,去年女儿出生后就开始规划送她去哪里接受教育,留在北京,还是随着一个工作机会去香港,或者全家移民国外? 她说,将来女儿读大学很大可能会去国外,但基础教育阶段有没有必要出去?中国的基础教育竞争力到底强不强? 大学有各种国际排行榜单,不同国家的中小学质量要如何对比?12月3日公布的第七轮国际学生评估结果(Programme for Int

 相关资料
  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 问题内容: 我们有两个节点的集群(私有云中的VM,64GB的RAM,每个节点8个核心CPU,CentOS),几个小索引(约100万个文档)和一个大索引,约有2.2亿个文档(2个分片,170GB)的空间)。每个盒上分配了24GB的内存用于elasticsearch。 文件结构: 运行以下查询大约需要1-2秒: 我们是在此时达到硬件极限,还是有办法优化查询或数据结构以提高性能? 提前致谢! 问题答案:

  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 主要内容:1 独立的列,2 前缀索引和索引选择性,3 多列(组合、联合)索引,3.1 多个单列索引的问题,3.2 使用多列索引,4 选择适合的索引列顺序,5 聚簇(聚集)索引,6 覆盖索引详细介绍了各种高性能的索引使用策略,比如联合索引、索引顺序、聚簇索引、覆盖索引等等,以及常见索引失效的情况。 前面我们已经介绍了各种类型的索引结构及其对应的优缺点: BTREE索引的数据结构以及具体实现原理深入解析 哈希索引的数据结构以及索引的优缺点 正确的创建和使用索引是实现高性能查询的基础。我们通常会看到一

  • 问题内容: 以下是我用于通过电子邮件搜索人的查询 在“电子邮件”上添加索引会加快查询速度吗? 问题答案: 不可以,因为当您使用通配符时,MySQL将无法使用该索引。如果您将LIKE更改为’f%’,那么它将能够使用索引。

  • 我对DS和算法相当陌生,最近在一次工作面试中,我被问到一个关于性能调优和代码的问题。我们有一个包含数十亿个条目的数据结构,我们需要在该数据结构中搜索特定的单词。那么,我们可以使用哪种Java特性/库在尽可能快的时间内进行搜索呢? 当时我想不出确切的答案,所以我写道: 我们可以将值存储在地图中,并在地图中搜索单词(但在如何确定地图中的键值对方面遇到了困难) 我如何才能理解这个问题的确切答案,以及什么

  • 我正在尝试在Elastic 2中创建一个过滤索引别名。十、 以下是所有青少年的资料,不分性别。我只想在这个过滤器里看到雌性。 这就是我试图创建索引别名的原因: 我看了这个问题,似乎是相同的答案,但是我的JSON一定有问题。 Elasticsearch将范围和术语连接到相同的数组项

  • 我是弹性搜索新手,并且已经完成了类似mykong教程的基本教程 我对创建任何文档的一部分有疑问 创建操作示例插入包含 /mkyong/posts/1001和以下请求数据的新文档: 问题1:-ES是否会在上述文档的所有属性上创建反向索引,即默认情况下的标题/类别/已发布/作者,并提供全文搜索,还是需要明确提及? 问题2:-在上述示例中,我们已经有了唯一的\u id,即。如果我已经将其存储在DB中并生