跳转到主要内容

Zope的索引和搜索解决方案。

项目描述

概述

ZCatalog 是 Zope 内置的搜索引擎。它允许您对所有类型的 Zope 对象进行分类和搜索。

它包含各种针对不同类型数据的索引。

变更日志

7.1 (2024-03-21)

  • 支持 Python 3.12。

  • 修复查询报告标签上的 TypeError。(#136

7.0 (2023-03-14)

  • 停止支持 Python 2.7、3.5、3.6。

  • 修复日期索引标签上的 SyntaxError。(#144

6.4 (2022-12-13)

  • 使 test_getCatalogPlan_partial 测试更稳定。在 Mac 上,您有时会得到不同的查询计划。(#140

6.3 (2022-08-03)

  • 提高性能稳定性。修复查询中未使用的索引的目录计划。(#138

  • 提高性能稳定性。修复未查询的目录计划。(#139

6.2 (2022-04-08)

6.1 (2021-11-09)

  • 提高大目录上简单 not 查询的性能。(#124

  • 修复多个具有相似名称的索引(通过 _ 分隔)被视为选项的情况。(#78

  • 强制使用 _sort_iterate_resultset 排序方法,当我们有多个排序索引时,修复通过多个索引进行的反转排序。(#108

  • 支持 Python 3.10。

6.0 (2020-10-08)

向后不兼容的更改

  • 移除已弃用的 Products.PluginIndexes.common 模块和 Products.ZCatalog.Lazy。(#54

  • 本版本仅适用于 Zope >= 5.0,尽管它可能在 Zope 4 上仍然有效。

特性

  • 添加新方法 searchAll 以执行对所有文档的搜索。

  • 支持 Python 3.9。

更改

修复

  • 在接口中记录 getAllBrainssearchAll

  • 更新 catalogView.dtml 以更改空搜索的行为(#102)。

  • 修复索引值在之前被索引后更改为 None 的情况。(#100

5.1 (2020-04-20)

  • 修复 Python 3.8 的问题:用 time.process_time 替换已弃用的 time.clock() 使用。(#96

  • UUIDIndex 中添加对 not 查询的支持。(#98

5.0.4 (2020-02-11)

  • 修复一些 DocumentTemplate 导入以防止弃用警告

5.0.3 (2020-01-17)

  • 修复当 Chameleon 模板引擎被禁用时查看 索引 标签时发生的异常。(#84

5.0.2 (2019-12-06)

  • 修复在具有进度处理程序时重新索引多个索引时发生的异常。(#89

5.0.1 (2019-06-17)

  • 修复 ZMI 中索引概述表的排序。将模板从 zpt 迁移。(#62

5.0 (2019-05-10)

向后不兼容的更改

  • 如果查询使用无效的索引参数,将引发 ValueError。这可以防止查询在没有用户反馈的情况下被更改,并返回不可能的搜索结果。(#67

错误修复

  • 修复查询重写以避免对复合索引的错误优化。(#59

  • 一致使用 UnIndex._convert 方法以避免代码的不必要重复。(#69

  • 修复具有许多索引对象的目录中 valueindexes 方法的性能问题。(#39

  • 确保当对象的路径更改时,PathIndex._index_object 会删除旧的索引条目。(#61

  • 根据现有的索引方法和属性进行代码清理和TopicIndex的完善。(#65

4.4 (2019-03-08)

  • 确保 WidCode 解码能够处理从 Python 2 错误转换为 Python 3 的字节。

  • 使用 setup.py 中的 python_requires 指定支持的 Python 版本。(Zope#481

  • 添加对 Python 3.8 的支持。

  • 使用 Flake8 检查代码。

4.3 (2019-02-08)

  • 将剩余的 ZMI 选项卡适配到 Bootstrap。(#45

  • 将 Python 3 中的已弃用 cgi.escape 替换为 html.escape

  • 修复 Python 3 中的“无效转义序列”警告。

4.2 (2018-10-05)

  • urllib.quote 替换为 six.moves.urllib.parse.quote。修复了在重建目录后 ZMI 重定向中的问题。

  • 将 ZMI HTML 适配到新的 Bootstrap ZMI。(#41

  • 修复 Python 3 中 _sort_iterate_resultset 的排序问题。(#42

  • 添加对 Python 3.7 的支持。

  • 停止支持 Python 3.4。

4.1.1 (2018-07-05)

  • 修复在 Python 3 中尝试在 OOBTree 中查找具有无效类型的键的值时发生的 TypeError。(#36

4.1 (2018-03-06)

  • 为日期和日期范围索引添加新的精度属性。这允许您索引比默认的一分钟时间分辨率更粗粒度的时间值。

  • 向 ZCatalog 添加新的 getAllBrains 方法,返回所有已编目对象的 brains 生成器。如果您在版本 4.0a2 之前依赖于 searchResults 返回所有 brains 的空查询,则可以使用此方法。

  • 修复 KeywordIndex 中的日志问题。

4.0.1 (2017-10-10)

  • 修复 BooleanIndex 中的错误,其中不包含索引条目的文档没有被所有查询过滤掉。

  • 更多 PEP8 兼容性。

4.0.0 (2017-05-23)

  • Python 3 兼容性

  • 目标使用 Zope 4:不再支持 2.13.x。

  • five.globalrequest 已合并到 Zope2 本身。

  • 在某些地方使用 aq_inner 而不是 aq_parent 以安全地获取父对象。

4.0a3(2017-02-02)

  • #19:修复清除索引后的缓存结果。

  • 使用 @implementer 类装饰器。

  • 向 ZCatalogIndexes 添加 __contains__ 方法,修复 zopefoundation/Zope#69。

  • 引发 BadRequest 而不是返回 MessageDialog。

4.0a2(2016-08-28)

  • 将 PluginIndexes.common.UnIndex 模块移动到 PluginIndexes.unindex。

  • 删除未使用的 Products.PluginIndexes.common.ResultListrandid 模块。

  • 合并 ZCTextIndex 代码。

  • 扩展 IQueryIndex 接口以处理运算符解析。

  • 为索引添加新的 IQueryIndex 接口。这引入了每个索引上一个新的 query_index 方法,与 _apply_index 相比,合同更简单。解析和跳过查询的责任已移至目录,返回值不再必须是(结果,使用的属性)的元组,因为后者未由目录使用。

  • parseIndexRequest 重命名为 IndexQuery 并将其移动到 ZCatalog.query

  • 删除未使用的 ZMI 图标。

  • 移除已过时的目录(路径)感知模块。

  • 移除 CatalogSearchArgumentsMap 以及使用请求对象作为查询的支持。

  • 空目录查询现在返回无结果。

  • 不再在目录查询中特别处理空字符串。

  • 添加新的复合索引索引类型。

4.0a1(2016-07-22)

  • Products.ZCatalog.Lazy 模块移动到 ZTUtils.Lazy

  • 添加 configure.zcml,包含已过时的 manage_add_delete 指令。

3.2 (2016-07-18)

  • #12:为所有 UnIndex 子类添加索引结果的请求缓存。

  • 添加对 five.globalrequest 的依赖。

3.1.2 (2016-07-17)

  • #6, #7, #11:在查询期间运行 ZODB 缓存垃圾回收。

  • #13:处理 add/delColumn 中的 None 阈值。

3.1.1 (2016-07-17)

  • 使索引列表与 Zope 4 兼容。

  • #5:在 UnIndex 中忽略 None 值,而不是引发 TypeError。

  • 为索引添加新的 getCounter 方法。

  • 直接依赖更新到 ZODB 4.0。

3.1 (2014-11-02)

  • 尝试在 UnIndex 中索引或查找 None 时引发 TypeError。这是与 BTrees 4.0+ 兼容所必需的更改,它防止没有明确排序定义的对象被插入到树中。

  • 不再在测试中尝试将 None 值插入字段索引中。

3.0.2 (2014-03-04)

  • 恢复索引使用额外查询参数的能力。参见 PR #1。

  • CatalogPlan.valueindexes 中的 len() 调用更改为避免在索引的每个 uniqueValues 方法的结果上使用。这曾经加载整个 BTrees 到内存中,并在启动时造成过度的数据库负载。

  • PathIndex.uniqueValues 上更正 withLengths 参数名称,使用复数形式,符合接口规范。

  • 明确说明 IUniqueValueIndex.uniqueValues 方法描述,并明确提及生成器/迭代器作为可能的返回值。PathIndex 是一个长时间返回生成器的例子。

  • 调整 actual_result_count 以修复排序查询,其中排序索引不包含所有文档。修复 LP #1237141。

  • 恢复使用 迭代排序索引 的情况的安全措施,并在同时使用限制时避免它。修复 LP #1236790。

3.0.1 (2013-10-15)

  • 修复 BooleanIndex,当索引反转是由于重新索引和具有相反值的现有文档引起的。修复 LP #1236354。

3.0 (2013-02-24)

  • 在添加列或索引时删除名称中的空白。

  • 为 Zope 4 移除 RequestContainer 提供向前兼容性。

  • 通过在一次步骤中创建底层记录项,而不是创建和三个更新调用,优化大脑实例化。

3.0b1(2012-07-19)

  • LP #727981:修复 DateIndex ZMI 浏览中一年第一个月的日期。

  • 统一 Unindex 和 DateIndex 搜索逻辑(_apply_index),为 DateIndexes 添加 not 支持。

3.0a2(2012-04-26)

  • 修复了另一个问题,即当首先查询自定义索引时,该索引既不了解 ILimitedResultIndex 也不返回分数,并且后来的索引是默认 ZCTextIndex 类型时,会保留分数值。

3.0a1(2012-04-22)

  • 扩展查询报告,涵盖排序索引、顺序和限制的详细信息。

  • 作为每个进度处理程序报告的一部分,还执行自动事务保存点,以便 ZODB 缓存有机会进行垃圾回收。

  • 为目录的 addColumndelColumn 方法添加了 threshold 参数,并将其用于进度处理程序。还优化了它们的一些内部功能。

  • 添加了对具有任意数量排序索引和不同 sort_order 值的 sort_on 查询的支持。例如:{‘foo’: ‘a’, ‘sort_on’: (‘foo’, ‘bar’)} {‘foo’: ‘a’, ‘sort_on’: (‘foo’, ‘bar’), ‘sort_order’: (‘’, ‘reverse’)} {‘foo’: ‘a’, ‘sort_on’: (‘foo’, ‘bar’, ‘baz’)}

  • 支持字段和关键词索引中的< cite>not查询。支持普通查询和范围查询的限制,以及纯粹排除查询。例如:< cite>{'foo': {'query': ['a', 'ab'], 'not': 'a'}} < cite>{'foo': {'query': 'a', 'range': 'min', 'not': ['a', 'e', 'f']}}} < cite>{'foo': {'not': ['a', 'b']}}}。注意,对索引的负过滤仍然限制项具有索引中的值。因此,在10个文档中,其中5个在< cite>foo索引中有值为< cite>1的,查询< cite>not 1将返回无项,而不是没有值的5项。如果您想考虑特定索引的所有项,则需要索引一个虚拟/默认值。

  • 将弃用警告更新为指向Zope 4而不是2.14。

2.13.22 (2011-11-17)

  • 向< cite>PriorityMap添加了新的< cite>load_from_path类方法,允许从文件加载计划,而不是通过环境变量加载模块。

2.13.21 (2011-10-20)

  • 重构了值索引逻辑。根据目录确定值索引,而不是全局。在优先图中存储值索引集,以便可以在ZMI中查看并将其存储在模块级别存储中。

  • 添加了对将ZCatalog用作本地实用程序的支持。此功能需要可选的< cite>five.globalrequest依赖项。

2.13.20 (2011-08-23)

  • 修复了sortResults中结果集后半部分的批次数计算错误。

2.13.19 (2011-08-20)

  • 将计划精度提高到其字符串表示中的4位数字。

2.13.18 (2011-07-29)

  • 在目录计划的字符串表示中,将时间四舍五入到最多两位小数。

2.13.17 (2011-07-29)

  • 重新引入了< cite>weightedIntersection优化,但会防止具有值的结果,并执行适当的回退到加权版本。

2.13.16 (2011-07-24)

  • 恢复了从ZCTextIndex索引中保留分数值。< a href="https://bugs.launchpad.net/zope2/+bug/815469" rel="nofollow">https://bugs.launchpad.net/zope2/+bug/815469

2.13.15 (2011-06-30)

  • 修复了BooleanIndex内联迁移代码中的未定义变量。

  • 修复了BooleanIndex的items方法,以便ZMI浏览视图正常工作。

2.13.14 (2011-05-19)

  • 如果任何LazyCat已被展开,则修复了添加两个LazyCat的问题。

  • 通过将索引值变量化而不是将其硬编码为< cite>True来扩展BooleanIndex。索引值将自动确定较小的集合并选择其最佳值。一旦索引值集合增长到总长度的60%以上,就会进行一次内联切换。选择60%是为了避免对几乎相等分布的索引(< cite>True/False)进行恒定切换。

  • 替换了UUIDIndex错误消息中的目录条目。

2.13.13 (2011-05-04)

  • 优化了< cite>Catalog.updateMetadata,避免查找< cite>self.uids并删除将< cite>self.data从非IOBTree类型转换为内联迁移代码。

  • 在路径索引中,如果值未更改,则不更新数据。

2.13.12 (2011-05-02)

  • 优化DateRangeIndex以更好地处理冲突解决。它始终开始存储值的IITreeSet,而不是对单个值存储int进行特殊处理。应该通过单独的API提供< cite>单个值作为int优化,以便在正常请求之外定期调用。

  • 将< cite>weightedIntersection和< cite>weightedUnion调用替换为其非加权版本,因为我们没有传递权重。

2.13.11 (2011-05-02)

  • 如果只提供了b_start但没有提供b_size,则在< cite>sortResults方法中修复了可能的TypeError。

  • 防止新的UUIDIndex通过Acquisition获取属性。

2.13.10 (2011-04-21)

  • 如果索引的属性是具有必需参数的方法,则在KeywordIndex中处理< cite>TypeErrors

  • 添加了每个索引结果与另一个索引结果集的交集时间的报告,并将此时间视为每个索引时间的一部分,以优先考虑索引。

  • 从查询计划中删除了对结果长度的跟踪。中间索引结果的长度计算本身可能很昂贵。

2.13.9 (2011-04-10)

  • 向日期范围索引添加了地板和天花板值。超出指定范围的值将被解释为与传递 None 相同,即 自时间开始以来直至结束。这允许索引应用其优化,同时超出此范围的对象仍可以存储在正常的日期索引中,该索引忽略了显式传递的 None 值。

2.13.8 (2011-04-01)

  • 修复了日期范围索引中的错误,该错误会导致提供结果集时省略与查询项完全匹配的对象。

  • 修复了 BooleanIndex,使其不索引没有目录属性的对象。

2.13.7 (2011-02-15)

  • DateIndex._unindex 的类型从 OIBTree 更改为 IIBTree。它将文档 ID 作为键存储,键只能是整数。

2.13.6 (2011-02-10)

  • 从各种方法中删除了文档字符串,因为它们不应该可供网络发布。

2.13.5 (2011-02-05)

  • 修复了在 2.13.4 版本中引入的测试失败。

2.13.4 (2011-02-05)

  • 添加了新的 UUIDIndex,基于常见的 UnIndex。它像 FieldIndex 一样工作,但每个值只能存储一个文档 ID,因此值与文档 ID 之间存在 1:1 映射。如果为已占用的值索引了不同的文档 ID,则记录错误。内部数据结构针对此进行了优化,并避免了为每个值存储一个 IITreeSet。

  • 优化了存在批处理参数时的排序。如果请求从结果集末尾的批,我们内部反转排序顺序,并在最后再次反转延迟序列。在一个有 100 个条目的序列中,如果我们请求包含项目 80 到 90 的批,我们现在反转排序 20 个项目(100 到 80),然后是前十个项目的切片,并再次反转它们。在此之前,我们不得不对前 90 个项目进行排序,然后对最后 10 个项目进行切片。

  • 如果提供了批处理参数,则将返回的延迟序列限制在所需的批处理中的项目上,而不是返回请求批处理之外的领先项目。

  • 修复了 DateRangeIndex 的 _insertForwardIndexEntry 方法中内联 IISetIITreeSet 的转换代码。

2.13.3 (2011-01-01)

  • 避免在 test_length_with_filter 中使用与区域设置相关的测试条件。

2.13.2 (2010-12-31)

  • 在展开嵌套 LazyCat 时保留 actual_result_count

  • 在所有延迟返回值上保留 actual_result_count。这允许从受 sort_limit 限制的目录结果中获取正确的批处理信息。

  • 确保所有延迟类上都有 actual_result_count,如果没有显式提供,则回退到 __len__

  • 优化了 Lazy 类的长度计算。

2.13.1 (2010-12-25)

  • 添加了基于批处理参数的自动排序限制计算。如果查询包含 b_startb_size 参数且没有提供显式的 sort_limit,则排序限制将计算为 b_start + b_size

  • 避免在 LazyMap 中预分配标记项目。

2.13.0 (2010-12-25)

  • 修复 LazyMap 以避免不必要的函数调用。

  • 作为单独的发行版发布。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分发

Products.ZCatalog-7.1.tar.gz (183.2 kB 查看哈希值)

上传时间

构建分发

Products.ZCatalog-7.1-py3-none-any.whl (230.5 kB 查看哈希值)

上传时间 Python 3

支持者

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