跳转到主要内容

协议实现和搜索集成

项目描述

概述

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 (37.0 kB 查看哈希值)

上传时间

由以下支持