跳转到主要内容

Python搜索和索引包

项目描述

Latest Version https://travis-ci.org/Pylons/hypatia.png?branch=master Documentation Status

一个Python索引和搜索系统。

有关更多信息,请访问http://github.com/Pylons/hypatia,因为此包处于alpha开发阶段。

0.4 (2022-04-23)

  • 放弃(未发布)对Python 3.3和Python 3.4的支持(持久化包不再支持这些版本)。

  • 放弃(未发布)对Python 3.5的支持(构建正确太困难——即使使用pyenv——也不值得)。

  • 放弃(发布)对Python 2.6和3.2的支持。

  • 添加对Python 3.6、3.7、3.8、3.9、3.10的支持(感谢Thierry Florac)。

  • 在tox.ini中使用pytest代替python setup.py test -q。

  • 更改测试中跨版本覆盖率的计算方式。

  • 删除未使用的hypatia/text/ricecode.py文件。

  • 略微改变文档构建方式以应对修改后的github协议。新版本的Sphinx出现了一些警告,我还没有将它们转换为错误,因为我还没有弄懂它们。

  • 在优化And或Or时不要修改查询属性,而是返回一个新的实例。此更改需要打开新的优化可能性,例如分解。

  • 修复比较器 __eq__ 方法,使其包括类型比较,例如,之前 NotAny(‘index’,[1]) 等于 Any(‘index’,[1])。

0.3 (2014-06-12)

  • 依赖于 ZODB 包而不是 ZODB3 包。前者是较新的 ZODB 包,意味着 ZODB4。如果您确实需要 ZODB v3,则需要将 hypatia 锁定到较旧版本。您应该知道,目前 ZODB3 的最新版本(3.11)实际上意味着 ZODB v4(我知道这并不完全明显,但 Jim 确信我),所以如果您确实需要 ZODB v3,您需要将 ZODB3 锁定在 3.11 以下,并将 hypatia 锁定在该版本以下。

  • 关键字索引现在具有类似于字段索引的 unique_values 方法。

  • 调用 hypatia.util.ResultSet.first()hypatia.util.ResultSet.one() 现在是幂等的。再次调用它将返回相同的值,并且调用它不会影响结果集的可迭代性(它将从零开始)。

0.2 (2014-05-16)

  • 现在通过方法查询对象进行交集和并集操作,而不是将交集/并集逻辑嵌入到 And 和 Or 查询对象中。这使得在与其他查询结果结合时可以创建不同的交集和/或并集查询对象类型。

0.1 (2014-02-09)

  • 修复 Sphinx 文档中的一个错误,导致 intersphinx 引用失败。

0.1a7 (2013-10-08)

  • unique_values API 添加到字段索引。

  • 有时在深度嵌套布尔操作(如 And 和 Or)时,无法找到 index 属性来解析结果集。请参阅 https://github.com/Pylons/hypatia/pull/5

  • 当使用没有任何 docids 的字段索引作为排序索引且 raise_unsortableTrue 时,正确抛出 Unsortable。

0.1a6 (2013-05-30)

  • check_query 方法添加到文本索引,以允许检查搜索词是否可解析。

0.1a5 (2013-05-06)

  • 添加了对 Python 3.2 / 3.3 的支持。

  • 修复 TextIndex.sort 的签名(例如,当传递 raise_unsortable 时将失败)。

  • IIndexSort.sortIResultSet.sort 方法添加 sort_type 关键字参数。此值可以通过调用代码传递来控制使用的排序类型。

  • 添加两个常量:hypatia.interfaces.STABLEhypatia.interfaces.OPTIMAL。这些可以作为显式参数传递给 IIndexSort.sortIResultSet.sortsort_type 参数,以控制排序的稳定性。

  • IResultSet 的构造函数现在接受 sort_type 关键字参数。

  • IResultSet.sort 构造的结果集将在其构造函数中传递 hypatia.interfaces.STABLE 值,以确保结果集的第二次和后续排序将以稳定的排序方式完成,除非向第二次排序显式传递 sort_type 值。

0.1a4 (2013-04-28)

  • 添加 IResultSet 接口定义。

  • 标准化 IIndexSort.sort 和 IResultSet.sort 的关键字参数顺序。

  • 在IIndexSort.sort和IResultSet.sort方法中添加一个参数raise_unsortable。默认值为True。这意味着当传入的docids成员无法通过用于排序的索引进行排序时(例如,docid的值不在索引中),迭代这些方法返回的结果可能会抛出hypatia.exc.Unsortable异常。默认值为True,这改变了索引的默认行为。要恢复旧默认行为,请为此值传递False。或者,可以编写如下代码:

    from hypatia.exc import Unsortable
    
    ids = []
    results = resultset.sort(someindex)
    try:
        for id in results:
            ids.append(id)
    except Unsortable as e:
        unsorted = e.docids
        ids.extend(unsorted)

0.1a3 (2013-01-10)

  • 优化在字段和关键词索引中返回默认值时的index_doc实现。

  • hypatia.path中删除代码。此包不再支持PathIndex。

  • 删除interfaces.IIndexQuery接口。因为它从未相关,因为无法期望索引实现其所有方法,而只是与每个索引相关的方法。

  • BaseIndexMixin不再提供引发NotImplementedError的applyFoo方法的默认实现。现在每个索引都负责实现其所有自己的applyFoo方法。这是为了与新的查询方法(如eq)保持一致,这些方法在基类中也没有实现。

  • 索引现在必须实现一个qname方法,以便查询使用。

  • DoesNotContain查询重命名为NotContains,以与其他否定查询名称保持对称。

  • 新增索引方法:eqnoteqgeleltgtanynotanyallnotallinrangenotinrangecontainsnotcontains。这些方法返回查询对象。例如:

    catalog['flavors'].eq('peach')
  • 查询对象内部重构以处理索引对象而不是索引名称。

  • 现在query.parse_query函数需要一个catalog参数。

  • 查询对象现在提供了一个返回ResultSet的execute方法。

  • .execute返回ResultSet对象。它们代表一组docids;它们是可迭代的,并有各种方法用于获取单个对象(如onefirst)和排序(sort)。

  • 所有Query对象现在都有一个接受任意位置和关键字参数的flush方法。调用查询对象的flush方法将导致参与查询的所有索引的flush方法使用与Query.flush传递的相同位置和关键字参数的值。这是为了支持Substance D上游,它可能需要在查询发生之前刷新索引。

  • 为所有索引添加一个接受docid并返回该索引对该docid的了解的字符串表示的document_repr方法。

0.1a2 (2012-07-02)

  • 此版本的代码与0.1a1版本生成的索引不兼容。没有升级脚本。如果你使用版本号为0.1a1的软件并期望向后兼容,那真是太遗憾了。

  • 添加用于根据索引值对外部docids集进行排序的API hypatia.catalog.CatalogQuery.sort

  • 添加必须由所有索引支持的接口IIndexEnumeration。这隐含了以下向后不兼容性

    • 新接口方法:docids、docids_count、indexed、indexed_count、not_indexed和not_indexed_count。

    • documentCount 方法重命名为 indexed_count。

    • wordCount 方法重命名为 word_count。

  • 删除未使用的 INBest 接口。

  • IIndexInjection 接口的 clear 方法重命名为 reset,以防止与字典的 clear 方法混淆(目录通常类似于字典)。将 Catalog 的 clear_indexes 方法替换为 reset

0.1a1

  • 首次发布:从 repoze.catalog 和 zope.index 分支合并。

项目详情


下载文件

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

源代码分发

hypatia-0.4.tar.gz (148.4 kB 查看哈希值)

上传时间 源代码

支持者