跳转到主要内容

Zope索引,用于查询具有日期范围的对象上的日期范围

项目描述

查询具有日期范围的对象中的日期范围。

示例:您想要下两周内所有事件,无论事件是否在一周前开始或在一周后结束 - 或两者都满足。

考虑具有日期范围开始和结束的对象。使用此插件查询查询开始和查询结束范围内的所有对象,其中对象开始和结束的任一项或两项都匹配查询范围。

此索引可能是解决此问题的最快方法,它作为zope索引解决此问题,并直接与目录快速IISets(或IFSets)交互。它的速度比以前使用的经典目录查询后处理快得多。

有两种可用的索引类型

  • Products.ZCatalog (Zope 2) 兼容

  • zope.catalog (Zope (3) 框架) 兼容

索引在两个索引(ZCatalog上的DateIndex或zope.catalog上的FieldIndex)上充当代理,执行更复杂的查询。它利用其他索引,不存储任何索引数据。

以下是在ZCatalog上查询的示例

>>> result = zcatalog.search({'myindex': {'start':'2000-10-01 00:00',
...                                       'end':'2010-10-31 23:59'} })

或在zope.catalog上的查询示例

>>> query = catalog.apply({'myindex': (datetime(2000, 10, 01, 00, 00'),
...                                    datetime(2010, 10, 31, 23, 59'))})

这将找到对象(假设开始日期始终在结束日期之前)

  1. 其中开始日期在2000-10-01之前,结束日期在2010-10-31之后。

  2. 其中开始日期在2000-10-01和2010-10-31之间。

  3. 其中结束日期在2000-10-01和2010-10-31之间。

  4. 其中两者都在2000-10-01和2010-10-31之间。

上述ASCII-Art(q=查询,e=事件)

Q)    q_start|--------------------|q_end

1) e_start|---------------------------|e_end

2) e_start|---------------|e_end

3)           e_start|-----------------|e_end

4)           e_start|-----|e_end

还可以通过XML配置此索引器。将以下设置的catalog.xml添加到您的配置文件中

    <?xml version="1.0"?>
    <object name="portal_catalog" meta_type="Plone Catalog Tool">

<index name="start_end_range" meta_type="DateRangeInRangeIndex">
    <startindex value="your_custom_start_field_index" />
    <endindex value="your_custom_end_field_index" />
</index>

    </object>

startindexendindex 节点定义了DateRangeInRangeIndex的开始和结束字段索引。

源代码

源代码位于github上的GIT DVCS中,其主要分支位于。

我们很高兴看到许多提交、分支和拉取请求,以使DateRangeInRangeIndex更加完善。

贡献者

历史

2.0.1 (2019-03-21)

  • 修复exportimport.py (GenericSetup) 以兼容Python 3,并添加Python 3.7到测试矩阵 [MrTango]

2.0 (2018-07-12)

  • 在删除对旧版本的支持的同时,添加对Products.ZCatalog >= 4的支持。[icemac, 2018-07-11]

  • 在删除对旧版Zope版本的支持的同时,在Zope 4上添加对Python 3.5和Python 3.6的支持。[icemac, 2018-07-11]

  • 为Zope 4兼容性删除对Globals的依赖。[sallner, 2017-08-21]

  • 一些代码清理[jensens, 2016-06-14]

1.3

  • 添加了对通用设置的兼容性[SyZn, 2014-01-16]

1.2

  • 添加了对zope.catalog兼容索引的支持[jensens, 2012-04-12]

1.1

  • eggification和pypi上的发布[jensens, 2011-03-08]

1.0

  • 作为Zope产品发布最终版本[jensens, 2007-08-29]

许可证

版权所有(C)2007-2016,奥地利蓝动态联盟,保留所有权利。

在满足以下条件的情况下,允许重新分配和使用源代码和二进制形式,无论是否修改:

  • 源代码的重新分配必须保留上述版权声明、本条件列表和以下免责声明。

  • 二进制形式的重新分配必须在与重新分配一起提供的文档和其他材料中复制上述版权声明、本条件列表和以下免责声明。

  • 未经事先书面许可,不得使用蓝动态联盟的名称或其贡献者的姓名来推广或推广由此软件派生出的产品。

本软件由蓝动态联盟提供,按原样提供,并且任何明确或暗示的保证,包括但不限于适销性和适用于特定目的的暗示保证均被排除。在任何情况下,蓝动态联盟均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)负责,无论此类损害是由于何种原因造成的,无论是在合同、严格责任还是在侵权(包括疏忽或不计后果)中,即使被告知了此类损害的可能性。

项目详情


下载文件

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

源代码分发

Products.DateRangeInRangeIndex-2.0.1.tar.gz (14.2 kB 查看哈希)

上传时间

构建分发

Products.DateRangeInRangeIndex-2.0.1-py2.py3-none-any.whl (19.0 kB 查看哈希)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面