跳转到主要内容

基于zope.index的搜索和索引

项目描述

https://travis-ci.org/repoze/repoze.catalog.svg?branch=master

一个基于 zope.index 的 Python 索引和搜索系统。

请参阅 docs 子目录中的文档或 在线文档

弃用

此项目仅处于维护模式。

Hypatia 是其继任者。 repoze.catalogHypatia 的早期版本,是此处工作的延续。

“在绿色项目中没有理由使用 repoze.catalog。”

——Chris McDonough

0.9.0 (2019-03-07)

  • 添加 Travis CI 支持。

  • 放弃对 Python 2.6 的支持。

  • Python 3 兼容

  • 添加对 Python 3.6 - 3.7 的支持 [vangheem, agitator, jensens]

0.8.3 (2014-08-07)

  • 修复了查询名称为 None 的查询中的错误 [ebrehault]。

  • 现在,“Catalog.search”返回的“numdocs”是整数子类,具有添加的属性“total”,它允许调用者访问在“limit”参数限制之前的结果集的总大小。

0.8.2 (2012-04-15)

  • 修复了文档渲染错误。

  • 将“dev”和“docs”别名添加到 setup.cfg。

0.8.1 (2011-08-17)

  • 在目录设置中与内容模式和后续示例中使用的查询和谐化索引名称/区分符。感谢 Douglas Cerna。

  • 修复了关键字索引中“applyEq”的语义。现在,“applyEq”(以及“applyNotEq”)方法期望查询的标量值。应使用“applyAny”,“applyAll”及其各自的否定来查询多个值。

  • 修复了查询解析器中的错误,其中“any”或“all”调用内的名称未正确解析。

  • 在使用 CQEs 时,现在可以在列表或元组内嵌入名称,允许以下表达式:“tags in any([tag1, tag2])”,其中 tag1 和 tag2 是在查询运行时解决的名称。

0.8.0 (2011-03-20)

  • 弃用基于 .search 的目录查询,转而使用通过 .query 的较新查询语言。有关更多信息,请参阅文档。

  • CatalogIndex 添加了 .docids() 方法。

  • 弃用 repoze.catalog.index.path2.CatalogPathIndex2

0.7.3 (2010-08-26)

功能

  • 拒绝将索引尝试调用可调用区分函数返回的 zodb.broken.Broken 实例序列化。这防止了具有不同步代码的实例太容易将 Broken 对象写入数据库,留给下一个不幸的反序列化器找到。这尤其是一个问题,因为我们的许多区分器都是 函数;Broken 机制试图在反序列化时恢复已损坏对象的状态,但它无法恢复尝试函数调用的状态。

0.7.2 (2010-06-17)

错误修复

  • 修复了一个错误,该错误允许文档映射将多个 docid 映射到同一地址,这使得反向和正向文档映射簿簿保持不同步。

打包

  • 将基准目录移动到分发根目录,而不是将其留在包中。它干扰了 setuptools 测试运行器的正常操作。

  • 停用“sortbench”控制台脚本。

  • 移除“开发状态”Trove分类器。

  • 将版本提升到 0.7.2。

  • 弃用 nose.collector 作为 test_suite(使用正常的 setuptools 测试运行器)。

  • 移除(未使用)TODO.txt。

  • 弃用 ez_setup.py。

  • 确保文档在 Google Chrome 中正确渲染。

向后不兼容性

  • 当使用具有引用现有 docid 和元数据的 docid 参数的 DocumentMap.add 时,现在将移除该元数据。以前则保留。

0.7.1 (2009-09-27)

  • 将文档最小化地调整以进行第一次PyPI发布;与0.7.0版本相比,没有功能上的变化。

0.7.0 (2009-08-03)

  • 修复了在添加现有docid和新的地址时,在DocumentMap.add中留下孤岛映射的bug。

  • 添加了按文本相关性排序的能力。在查询中使用文本索引的名称作为sort_index

0.6.2 (2009-04-15)

  • repoze.catalog.document.DocumentMap添加与元数据相关的API:add_metadataremove_metadataget_metadata。“元数据”是与docid相关的自由形式键/值对集合。有关更多信息,请参阅API文档。

0.6.1 (2009-02-25)

  • 修复了构造函数继承问题,这使得repoze.catalog在Python 2.6下无法工作。请注意,此更改涉及从索引构造函数中删除*args, **kw参数:这些值从未使用过,但有(虚假的)测试。

0.6.0 (2009-02-16)

  • 在没有限制的情况下,N-Best升序字段索引排序被错误地选择。症状:RuntimeError, 'n-best used without limit'

0.5.9 (2009-02-16)

  • reindex_doc方法作为index_doc的别名添加到CatalogFieldIndex和CatalogKeywordIndex中(为了性能,两个索引的index_doc都具有重新索引的特殊情况代码)。

0.5.8 (2009-02-16)

  • 通过在某些地方使用__getitem__而不是.get来加快path2索引属性搜索。

  • 覆盖textindex的reindex_doc方法:仅调用index_doc而不是先调用unindex_doc然后调用index_doc要高效得多。

0.5.7 (2009-02-14)

  • 返回给属性检查器的属性不正确。

0.5.6 (2009-02-12)

  • 将“属性区分器”和“属性检查器”支持添加到path2索引中。如果使用属性区分器创建索引,则在索引任何对象时,属性值将存储在路径索引中。路径索引将知道该属性属于特定路径。稍后,当使用applysearch方法的“属性检查器”功能时,用户提供的属性检查器函数将能够过滤索引返回的结果集。作者主要使用此功能来支持路径索引的安全过滤搜索。此功能未在其他文档中记录。

0.5.5 (2009-02-11)

  • 向目录和common共享索引基类添加reindex_doc方法。目录的reindex_doc调用时将调用每个索引的reindex_doc方法。公共共享索引基类的实现先取消索引docid,然后使用docid重新索引文档。此方法可以覆盖特定索引以在重新索引时执行不同的操作。

  • repoze.catalog.indexes.path2.CatalogPathIndex2现在为其搜索方法提供了一个名为include_path的额外参数。如果是true,则返回的docid集合将包括由路径查询参数指定的路径的docid。索引的apply方法允许在指定为字典的查询中指定include_path作为字典成员。

  • path2.CatalogPathIndex2索引提供一个比默认更好的reindex_doc方法。

  • 目录关键字索引的apply方法会修改传入的查询,如果它是字典。为了修复此问题,我们覆盖了来自zope.index实现的apply方法。

  • 添加了一个可导入为repoze.catalog.Range的Range类。Range类应用于表示对CatalogFieldIndex的范围查询。仍然支持使用2元组表示范围的老式方法,但最终将删除,以要求使用Range对象来表示范围查询。Range对象可以像“Range(start, end)”一样实例化。

  • 现在可以向 CatalogFieldIndex 的 apply 方法传递一系列项目。当传递的术语序列 不是 包含两个项目的元组(之前的 API 表示范围,现已弃用)时,它将被视为对多个术语的查询。每个术语返回的 docid 将被合并以形成结果。

  • 现在可以向 CatalogFieldIndex 的 apply 方法传递字典。当传递字典时,字典中名为 query 的成员被视为查询。它可能是一个单个术语、一系列术语或范围。还可以指定名为 operator 的额外字典成员:当指定此成员时,它必须是 orand 之一(默认为 or)。如果查询指定了多个术语,并且运算符是 or,则结果将合并;如果查询指定了多个术语,并且运算符是 and,则结果将相交。

0.5.4 (2009-02-05)

功能

  • 添加了一个新的路径索引实现,可以导入为 repoze.catalog.path2.CatalogPathIndex2,作为另一种索引类型。与 Zope2 内部首创的“级别”方案(由 repoze.catalog.path.CatalogPathIndex 使用)相比,path2 索引类型是一种改进,因为它实际上使用一个图来表示结构,而不是“级别”方案。直观上看,“级别”方案可能对足够密集的树在任何给定路径上返回错误的结果。

  • 目录索引必须现在提供一个 apply_intersect 方法;它接收一个查询和一组 docid(迄今为止的结果交集)。它应该有与 apply 方法相同的返回值。从 common.CatalogIndex 继承的索引将继承默认实现。

  • 现在可以在目录查询中指定索引查询/合并顺序。请参阅文档中的 Index Query/Merge Order

0.5.3 (2009-01-05)

功能

  • 更好地检测在字段索引的升序排序中何时使用 fwdscan。

  • 更好地检测在字段索引的升序排序中何时使用 nbest 与 timsort。

0.5.2 (2009-01-04)

功能

  • 允许一个新的目录搜索方法关键字:sort_type。对于升序排序,这可以是 nbestfwscantimsort 之一。对于降序排序,仅支持 nbesttimsort。此参数允许对 FieldIndex 代码中执行排序的算法进行细粒度控制。

  • 根据经验测试,更好地自动检测应使用哪种排序算法(当未通过 sort_type 提供时)。

  • 依赖于 zope.index 3.5.0 而不是任何更早的版本(repoze.catalog 修复已迁移至 zope.index 3.5.0)。

  • 添加“sortbench”脚本来测试各种字段索引排序策略(需要创建图表的“benchmark”额外功能)。

错误修复

  • 防止在尝试对一个空结果集进行排序时出现零除错误。

0.5.1 (2008-12-31)

功能

  • 优化字段索引排序策略的选择。

  • 略微加快关键字索引合并的速度。

  • 修复了目录返回值中的错误:如果没有限制,它会尝试返回文档数的最小值或限制事件。

错误修复

  • Sean Upton 指出,文档映射代码人为地将文档数限制为实际能处理的一半。

0.5 (2008-11-10)

功能

  • 添加路径索引。

  • 通过首先按从小到大的顺序对相交的集合进行排序,名义上加快关键字索引“and”(交集)查询的速度。

  • 由 Chris Rossi 提供的基准测试套件。

  • 添加一个“分面”索引(repoze.catalog.indexes.facet.CatalogFacetIndex)。这个索引与关键词索引类似,但不同之处在于它包含一个分面列表(一系列以冒号分隔的已知值)并接受以冒号分隔的术语序列作为值。每个术语在冒号处分割,形成一个分类序列,然后对每个分类的组合进行索引。例如,如果您将文档索引为 ['style:gucci:handbag'],并且分面列表包含 'style''style:gucci''style:gucci:handbag',则文档将被索引三次:作为 style、作为 style:gucci 和作为 style:gucci:handbag。查询分面索引返回与传入的分面相匹配的文档 ID 集合。分面索引还有一个 counts 方法,该方法为文档 ID 集合提供包含“进一步约束信息”的字典,用于在缩小 UI 中使用。此计数实现不适用于非常大的站点;它是直观的。

0.4 (2008-10-06)

功能

  • 通过使用单个 IFBTree.multiunion 而不是多次调用 IFBTree.union 来加快关键词索引“或”(并集)查询;这对于加快查询序列中有许多术语的“或”查询非常有用。

文档

  • 添加 概述 页面。

0.3 (2008-10-04)

功能

  • 添加 repoze.catalog.document.DocumentMap 类,它提供了一种将“地址”(路径)映射到文档 ID 的机制。

文档

  • 为目录和文档映射添加 API 文档。

向后不兼容性

  • searchResults 方法重命名为 search

  • 移除了目录的 updateIndexupdateIndexes 方法。

  • 所有索引实现都移动到 repoze.catalog.indexes

  • 所有接口都移动到 repoze.catalog.interfaces

0.2 (2008-09-26)

  • 提供 sort_index 功能。

0.1 (2008-07-26)

  • 初始发布。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

repoze.catalog-0.9.0.tar.gz (101.8 KB 查看散列

上传时间

构建分发

repoze.catalog-0.9.0-py3-none-any.whl (87.9 KB 查看散列

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页