协议实现和搜索集成
项目描述
概述
Google搜索设备集成到Plone。
兼容Plone 4。
安装
使用Plone的设置工具安装配置文件:“集成到Google搜索设备”。
然后访问控制面板以配置您的设备。控制面板中还包括各种设置,用于自定义站点集成。
为什么?
此包存在是为了在Plone和Google搜索设备服务之间提供轻量级集成。其理念是让设备承担重任,而不是Plone。后缀“64”对应于撰写时的搜索设备软件版本:6.4。
Matous Hora的collective.gsa包中有一个替代方案,它采用不同的方法,并因此是一个更复杂的软件包。该软件包还通过修补默认的门户目录更紧密地集成到Plone中。
当前包 – collective.gsa64 – 仅关于站点搜索。
Feed协议实现
此包包含一个Feed Protocol API的实现。当创建、修改或删除启用了搜索的内容项时(使用Plone的搜索控制面板进行配置),将向搜索设备发送一个feed以更新状态。
有两种操作模式:web(隐式启用名为"web"的feed)和url和元数据模式(任何其他名称)。
第二个模式的元数据直接从HTML中通过使用plone.htmlhead内容提供者获取。因此,这直接对应于通过爬虫索引的元数据。
您可以通过使用网站控制面板来启用包含标准的Dublin Core元数据。
在ZCML中渲染附加元数据的视图定义示例
<browser:viewlet name="my-metadata-viewlet" for=".content.ISomeContentType" manager="plone.app.layout.viewlets.interfaces.IHtmlHead" template="my_metadata_viewlet.pt" permission="zope2.View" />
请注意,在浏览器请求结束后才会发出feed请求,因此不会延迟服务器响应。
搜索视图
设置脚本会将一个id为"search"的Python Script对象添加到门户根目录。它接管了正常的皮肤查找,并将遍历重定向到@@gsa-search视图。
您可以通过控制面板启用或禁用搜索设备结果视图(以及一般的操作)。
默认情况下,结果视图是通过包含的浏览器视图和模板生成的,该模板生成类似于Plone自身搜索结果视图的标记。然而,也可以直接应用XSLT转换到XML结果文档并显示它。
对于自定义项目,可能需要子类化默认搜索视图实现。以下是一个修改后的查询示例
from collective.gsa64.browser import search class SearchView(search.SearchView): def build_query(self): query = super(SearchView, self).build_query() # always include hits for "plone" query['q'] = '(%s) OR plone' % query['q'] return query
可能希望更改单个搜索结果的显示。您可以通过提供自己的搜索模板并填写"result" METAL槽来完成此操作。
class SearchView(search.SearchView): template = ViewPageTemplateFile("templates/search.pt") @property def master_search_template(self): return super(SearchView, self).template
templates/search.pt模板
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" lang="en" metal:use-macro="view/master_search_template/macros/master"> <metal:result fill-slot="result"> <h4 tal:content="structure result/heading" /> </metal:result> </html>
每个result对象包含以下键
description:HTML文档描述
heading:HTML文档标题
url:文档的显示URL
creator:DC创建者值
normalized_content_type:归一化的Plone内容类型ID
metadata:将元数据键映射到值的字典
内容类型过滤器
Plone的不搜索的类型标准设置通过浏览器视图小部件"meta-robots"应用于HTML输出,并为排除在搜索之外的类型渲染一个noarchive元标签。
致谢
此软件包由以下作者设计和开发。
Malthe Borch
Mustapha Benali
开发由Headnet资助。
历史
1.0-beta4 (2011-11-30)
特性
添加了客户端功能的设置
KeyMatch、相关查询、过滤器等。
这些在控制面板中可用。[mustapha]
错误修复
处理产品未安装的情况。[mustapha]
处理空描述或标题的情况。[mustapha]
添加了浏览器层,通过设置启用浏览器组件。[mustapha]
1.0-beta3 (2011-01-10)
从尝试将HTML元标签作为元数据使用导致的组件查找错误中恢复。
禁用搜索结果过滤(至少直到我们可以提供一个呈现正常“我们已过滤您的结果”对话框的界面)。
如果注册表不可用(缺少plone.app.registry的设置),则忽略事件处理程序。
修复了在未建立交互(例如在测试设置中)的情况下调用checkPermission会导致异常的问题。
1.0-beta2 (2010-12-20)
如果HTML元标签没有内容属性,则从feed中删除它。
1.0-beta1 (2010-12-17)
首次公开发布。
项目详情
collective.gsa64-1.0-beta4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eab6dece9b83ea404de5aab6c7df064331dce2329b2ee651a5533f38fec7466e |
|
MD5 | 9c4cd1ccdebc2dc5b5e79e0d001cd451 |
|
BLAKE2b-256 | 6e0d8772612860a9c97bdd38f18f8ddeb0834aceac5ab2a5764bfe1242239495 |