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)
6.2 (2022-04-08)
当 IndexQuery 接收到的参数是一个 record 时,避免搜索错误。(plone/Products.CMFPlone#3007)
重构并改进 ZMI 模板(#128)
6.1 (2021-11-09)
6.0 (2020-10-08)
向后不兼容的更改
移除已弃用的 Products.PluginIndexes.common 模块和 Products.ZCatalog.Lazy。(#54)
本版本仅适用于 Zope >= 5.0,尽管它可能在 Zope 4 上仍然有效。
特性
添加新方法 searchAll 以执行对所有文档的搜索。
支持 Python 3.9。
更改
重新设计请求缓存以避免在脚本(具有人工请求)中产生过时的缓存结果。详细信息: #94,Plone 5.2 大规模迁移:搜索结果不良
修复
5.1 (2020-04-20)
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)
错误修复
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)
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.ResultList 和 randid 模块。
合并 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 缓存有机会进行垃圾回收。
为目录的 addColumn 和 delColumn 方法添加了 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>查询。支持普通查询和范围查询的限制,以及纯粹排除查询。例如:< 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>索引中有值为< cite>1 cite>的,查询< cite>not 1 cite>将返回无项,而不是没有值的5项。如果您想考虑特定索引的所有项,则需要索引一个虚拟/默认值。
将弃用警告更新为指向Zope 4而不是2.14。
2.13.22 (2011-11-17)
向< cite>PriorityMap cite>添加了新的< cite>load_from_path cite>类方法,允许从文件加载计划,而不是通过环境变量加载模块。
2.13.21 (2011-10-20)
重构了值索引逻辑。根据目录确定值索引,而不是全局。在优先图中存储值索引集,以便可以在ZMI中查看并将其存储在模块级别存储中。
添加了对将ZCatalog用作本地实用程序的支持。此功能需要可选的< cite>five.globalrequest cite>依赖项。
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 cite>优化,但会防止具有值的结果,并执行适当的回退到加权版本。
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 cite>来扩展BooleanIndex。索引值将自动确定较小的集合并选择其最佳值。一旦索引值集合增长到总长度的60%以上,就会进行一次内联切换。选择60%是为了避免对几乎相等分布的索引(< cite>True/False cite>)进行恒定切换。
替换了UUIDIndex错误消息中的目录条目。
2.13.13 (2011-05-04)
优化了< cite>Catalog.updateMetadata cite>,避免查找< cite>self.uids cite>并删除将< cite>self.data cite>从非IOBTree类型转换为内联迁移代码。
在路径索引中,如果值未更改,则不更新数据。
2.13.12 (2011-05-02)
优化DateRangeIndex以更好地处理冲突解决。它始终开始存储值的IITreeSet,而不是对单个值存储int进行特殊处理。应该通过单独的API提供< cite>单个值作为int cite>优化,以便在正常请求之外定期调用。
将< cite>weightedIntersection cite>和< cite>weightedUnion cite>调用替换为其非加权版本,因为我们没有传递权重。
2.13.11 (2011-05-02)
如果只提供了b_start但没有提供b_size,则在< cite>sortResults cite>方法中修复了可能的TypeError。
防止新的UUIDIndex通过Acquisition获取属性。
2.13.10 (2011-04-21)
如果索引的属性是具有必需参数的方法,则在KeywordIndex中处理< cite>TypeErrors cite>。
添加了每个索引结果与另一个索引结果集的交集时间的报告,并将此时间视为每个索引时间的一部分,以优先考虑索引。
从查询计划中删除了对结果长度的跟踪。中间索引结果的长度计算本身可能很昂贵。
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 方法中内联 IISet 到 IITreeSet 的转换代码。
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_start 和 b_size 参数且没有提供显式的 sort_limit,则排序限制将计算为 b_start + b_size。
避免在 LazyMap 中预分配标记项目。
2.13.0 (2010-12-25)
修复 LazyMap 以避免不必要的函数调用。
作为单独的发行版发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
Products.ZCatalog-7.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e14088123e1da571c510bfa563b2a8e1738dbf4007bb5883daf0e668e0231ab7 |
|
MD5 | 7297fb8d7d74b835a1c0b0db3d4440e4 |
|
BLAKE2b-256 | 9682c5900030cdd313c8ee2a0f75f179b309eef6dcd41ec6b49e7d34171c3f79 |
Products.ZCatalog-7.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6c8612c4a7500517f47d690f764e554da8aeac097b9b1de511cd9ca401b46245 |
|
MD5 | 3fec600d93d400fbfe3e641ee5181631 |
|
BLAKE2b-256 | 127d541a4737b73ef1affb7cabf80cffea830e3dd52b76e101826d8bd2e14f7b |