跳转到主要内容

高级查询的GUI和一些扩展 - Plone的简单搜索方式

项目描述

简介

此软件包提供了Dieter Maurer的《高级查询》的完整用户界面。它使您能够使用一种强大的语言来搜索内容。它还提供功能,以保存参数化和条件查询以供以后使用(预定义查询)。请查看示例以获取更多信息。

安装

  • 将anthill.querytool放在eggs=和zcml=中

  • 确保已安装AdvancedQuery(适用于Plone 3.x)

示例查询

查询可能看起来像这样

And(
    Eq('SearchableText', '$text'),
    ~Generic('path', {'query':'Members', 'level':-1}),

    [[if($allowed_types)]]
        In('portal_types', $allowed_types),
    [[endif]]

    [[ifnot($allowed_types)]]
        In('portal_types', ['Folder', 'Document']),
    [[endif]]

    Ge('start_date', TODAY)
)

在这里,您可以看到您可以参数化查询(使用$启用变量扩展),您还可以使用定义的常量(目前只有一个活动常量称为TODAY,其中TODAY=DateTime())并且您可以在查询中放置条件。

条件是启用或禁用查询中某些部分的有力方式。if语句检查给定参数是否存在。您还可以将if替换为ifnot,这样只有在参数未设置的情况下才激活给定部分。

您可以保存此查询,稍后像这样调用它

context.query_tool.executePredefinedQuery('contentsearch', text='Test*', allowed_types=['Folder', ])

扩展

此版本添加了一些额外的查询运算符(在SearchOperators.py中定义)。以下运算符目前可用

  • Count 计算搜索结果中的项数。 (例如 Count(Eq(‘SearchableText’, ‘moses’)) )

  • Sum 计算整数的总和。 (例如 Sum(Ge(‘commentcount’, 10)) )

  • Avg 计算整数的平均值。 (例如 Avg(Ge(‘userviews’, 1)) )

查看 SearchOperators.py 以获取如何创建您自己的操作符的示例。

提交查询

http://files.banality.de/public/anthill.querytool.submit.jpg

预定义查询

http://files.banality.de/public/anthill.querytool.predefined.jpg

谢谢

  • Markus Reinsch 编写了此包的前身

  • Dieter Maurer 对 AdvancedQuery 的出色实现

变更日志

0.2 - 2009/08/21

  • 重装文档 [spamsch]

0.1 - 2009/08/20

  • 初始发布

项目详情


下载文件

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

源分发

anthill.querytool-0.2.tar.gz (16.6 kB 查看散列)

上传时间

由以下组织支持