带有一些扩展的高级查询图形用户界面-搜索plone的简单方法
anthill.querytool的Python项目详细描述
简介
此包为AdvancedQueryby提供完整的用户界面 迪特尔·莫雷尔。它使您能够使用强大的语言来搜索 内容。它还提供保存参数化和条件化的功能。 供以后使用的查询(预定义查询)。更多信息请看示例。
安装
- 将anthill.querytool放入eggs=和zcml=
- 确保已安装AdvancedQuery(适用于plone 3.x)
示例查询
A query could look like that:
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=datetime()),您可以在查询中放入条件。
条件语句是启用或禁用 查询。^ {TT2}$语句检查给定参数是否存在。你也可以 将if替换为ifnot,它只在 参数未设置。
您可以保存此查询,稍后再这样调用:
context.query_tool.executePredefinedQuery('contentsearch', text='Test*', allowed_types=['Folder', ])
扩展名
此版本添加了一些附加的查询运算符(在 searchOperators.py)。当前提供以下操作员:
- Count统计搜索结果中的项。(例如count(eq('searchabletext','moses'))
- Sumcomputes sum over int result(例如sum(g e('commentcount',10))
- Avg计算int结果的平均值(例如avg(g e('userviews',1))
查看searchOperators.py以获取有关如何创建自己的运算符的示例。
提交查询
预定义查询
谢谢
- Markus Reinsch,用于编码此软件包的前身
- Dieter Maurer对AdvancedQuery的出色实现
变更日志
0.2-2009年8月21日
- 修改后的文档[SPAMSCH]
0.1-2009/08/20
- 初始版本