部署 Norconex HTTP Collector 索引器插件

本指南适用于 Google Cloud Search Norconex HTTP Collector 索引器插件管理员,即负责下载、部署、配置和维护该索引器插件的人员。本指南假定您熟悉 Linux 操作系统、网页抓取基础知识、XML 和 Norconex HTTP Collector

本指南介绍了如何执行与该索引器插件部署相关的关键任务:

  • 下载该索引器插件软件
  • 配置 Google Cloud Search
  • 配置 Norconex HTTP Collector 和网页抓取
  • 启动网页抓取并上传内容

对于 G Suite 管理员在将 Google Cloud Search 映射到 Norconex HTTP Collector 索引器插件时所必须执行的任务,本指南并未涉及。如需了解这些任务的相关信息,请参阅管理第三方数据源

Cloud Search Norconex HTTP Collector 索引器插件概览

默认情况下,Google Cloud Search 可从 Google 文档和 Gmail 等 G Suite 产品中发现所需内容、将其编入索引,并提供给用户。您可以通过部署开源企业网页抓取工具 Norconex HTTP Collector 的索引器插件,进一步扩大 Google Cloud Search 的覆盖范围以向用户提供网页内容。

配置属性文件

若想使该索引器插件能够执行网页抓取并将内容上传到 Indexing API,索引器插件管理员需要在配置步骤(请参阅本文档的部署步骤部分)中提供特定信息。

要使用该索引器插件,您必须在以下两个配置文件中设置属性:

  • {gcs-crawl-config.xml} -- 关于 Norconex HTTP Collector 的设置。
  • sdk-configuration.properties -- 关于 Google Cloud Search 的设置。

各文件中的属性旨在让 Google Cloud Search 索引器插件和 Norconex HTTP Collector 能够相互通信。

网页抓取和内容上传

设置好上述配置文件后,您就可以启动网页抓取了。Norconex HTTP Collector 会进行网页抓取,发现与其配置相关的文档内容,并将原始二进制(或文本)版本的文档内容上传到 Cloud Search Indexing API;在该 API 中,相应内容会被编入索引并最终提供给您的用户。

支持的操作系统

Google Cloud Search Norconex HTTP Collector 索引器插件必须安装在 Linux 系统中。

支持的 Norconex HTTP Collector 版本

Google Cloud Search Norconex HTTP Collector 索引器插件支持 2.8.0 版。

ACL 支持

该索引器插件支持使用访问控制列表 (ACL) 来控制对 G Suite 网域中文档的访问权限。

如果在 Google Cloud Search 插件配置中启用了默认 ACL(defaultAcl.mode 设置为 none 以外的值,并配置了 defaultAcl.*),该索引器插件会首先尝试创建一个默认的 ACL,继而进行使用。

如果未启用默认 ACL,则该插件会转而授予对整个 G Suite 网域的读取权限。

如需详细了解 ACL 配置参数,请参阅 Google 提供的连接器参数

前提条件

在部署该索引器插件之前,请确保您拥有以下必需组件:

  • Java JRE 1.8(安装于运行该索引器插件的计算机上)
  • 为 Cloud Search 和 Norconex HTTP Collector 建立联系所需的 G Suite 信息:

    一般来说,G Suite 网域管理员可以为您提供这些凭据。

部署步骤

要部署索引器插件,请按照以下步骤操作:

  1. 安装 Norconex HTTP Collector 和索引器插件软件
  2. 配置 Google Cloud Search
  3. 配置 Norconex HTTP Collector
  4. 配置网页抓取
  5. 启动网页抓取和内容上传

第 1 步:安装 Norconex HTTP Collector 和索引器插件软件

  1. 页面下载 Norconex 提交程序软件。
  2. 将下载的软件解压缩到 ~/norconex/ 文件夹
  3. 依次使用以下命令从 GitHub 克隆提交程序插件:git clone https://github.com/google-cloudsearch/norconex-committer-plugin.gitcd norconex-committer-plugin
  4. 检出所需的提交程序插件版本并打包成 ZIP 文件:git checkout tags/v1-0.0.3mvn package(如需在构建连接器时跳过测试,请使用 mvn package -DskipTests。)
  5. cd target
  6. 将构建的插件 jar 文件复制到 norconex lib 目录中。 cp google-cloudsearch-norconex-committer-plugin-v1-0.0.3.jar ~/norconex/norconex-collector-http-{version}/lib
  7. 提取您刚刚构建的 ZIP 文件,然后进行解压缩:unzip google-cloudsearch-norconex-committer-plugin-v1-0.0.3.zip
  8. 执行安装脚本,将插件的 .jar 文件和所有必需的库复制到 HTTP Collector 的目录中:
    1. 切换到刚才提交程序插件解压后的文件夹:cd google-cloudsearch-norconex-committer-plugin-v1-0.0.3
    2. 执行 $ sh install.sh,并在系统提示时提供 norconex/norconex-collector-http-{version}/lib完整路径作为目标目录。
    3. 如果发现重复的 jar 文件,请选择选项 1(即重命名目标 Jar 后,仅在源 Jar 的版本与目标 Jar 相同或高于目标版本时,才复制源 Jar)

如要将该索引器插件连接到 Norconex HTTP Collector 并将相关内容编入索引,您必须在安装了 Norconex HTTP Collector 的 Norconex 目录中创建 Cloud Search 配置文件。Google 建议您将 Cloud Search 配置文件命名为 sdk-configuration.properties

此配置文件必须包含用于定义参数的键值对,还必须至少指定访问 Cloud Search 数据源需要用到的以下参数。

设置 参数
数据源 ID api.sourceId = 1234567890abcdef
必填。由 G Suite 管理员设置的 Cloud Search 源 ID。
服务帐号 api.serviceAccountPrivateKeyFile = ./PrivateKey.json
必填。由 G Suite 管理员为访问索引器插件所创建的 Cloud Search 服务帐号密钥文件。

以下是一个 sdk-configuration.properties 文件的示例。

#
    # data source access
    api.sourceId=1234567890abcdef
    api.serviceAccountPrivateKeyFile=./PrivateKey.json
    #
    

此配置文件还可以包含 Google 提供的配置参数。这些参数可影响此插件将数据推送到 Google Cloud Search API 的方式。例如,batch.* 这组参数可以设定连接器将如何打包多个请求。

如果您未在配置文件中定义参数,系统将使用默认值(如果有)。如需详细了解每个参数,请参阅 Google 提供的连接器参数

您可以对索引器插件进行配置,从而为要编入索引的内容填充元数据和结构化数据。您可以从要编入索引的 HTML 内容的元标记中提取元数据和结构化数据字段的值,也可以在配置文件中指定默认值。

设置 参数
名称 itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
默认情况下,该插件使用 HTML title 作为要编入索引的文档的标题。如果没有标题,您可以参考包含文档标题对应值的元数据特性,也可以设置默认值。
创建时间戳 itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
包含文档创建时间戳值的元数据特性。
上次修改时间 itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
包含文档上次修改时间戳值的元数据特性。
文档语言 itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
要编入索引的文档的内容语言。
架构对象类型 itemMetadata.objectType=movie
网站使用的对象类型,如数据源架构对象定义中所述的进行定义。如果未指定此属性,连接器不会将任何结构化数据编入索引。

注意:此配置属性指向一个值而非一个元数据特性,并且不支持 .field.defaultValue 后缀。

日期时间格式

日期时间格式指定元数据特性中应采用的格式。如果配置文件不包含此参数,系统将使用默认值。下表显示了此参数。

设置

参数

日期时间模式

structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
    

一份包含多种 java.time.format.DateTimeFormatter 模式的英文分号分隔列表。在解析元数据或架构中所有日期或日期时间字段的字符串值时,会使用这些模式。默认值为空列表,但支持 RFC 3339 和 RFC 1123 格式。

第 3 步:配置 Norconex HTTP Collector

zip 归档文件 norconex-committer-google-cloud-search-{version}.zip 包含一个示例配置文件 minimum-config.xml

Google 建议您复制此示例文件来开始进行配置:

  1. 切换到 Norconex HTTP Collector 目录:
    $ cd ~/norconex/norconex-collector-http-{version}/
  2. 复制此配置文件:
    $ cp examples/minimum/minimum-config.xml gcs-crawl-config.xml
  3. 修改此新创建的文件(在本示例中为 gcs-crawl-config.xml),并根据下表来添加或替换现有的 <committer><tagger> 节点。
设置 参数
<committer> node <committer class="com.norconex.committer.googlecloudsearch. GoogleCloudSearchCommitter">

必填。要启用该插件,必须添加 <committer> 节点作为根节点 <httpcollector> 的子节点。
<UploadFormat> <uploadFormat>raw</uploadFormat>
可选。索引器插件将文档内容推送到 Google Cloud Search 索引器 API 时采用的格式。有效值为:
  • raw:该索引器插件推送未经转换的原始文档内容。
  • text:该索引器插件推送提取出来的文本内容。

默认值为 raw
BinaryContent Tagger <tagger> node <tagger class="com.norconex.committer.googlecloudsearch.BinaryContentTagger"/>
如果 <UploadFormat> 值为 raw,则必须填写此参数。在这种情况下,该索引器插件需要文档的二进制内容字段处于可用状态。

您必须将 BinaryContentTagger <tagger> 节点添加为 <importer> / <preParseHandlers> 节点的子节点。

以下示例展示了对 gcs-crawl-config.xml 的必要修改。

<committer class="com.norconex.committer.googlecloudsearch.GoogleCloudSearchCommitter">
        <configFilePath>/full/path/to/gcs-sdk-config.properties</configFilePath>
        <!-- Optional, value="[raw|text]". Default value: raw -->
        <uploadFormat>raw</uploadFormat>
    </committer>
    <importer>
      <preParseHandlers>
        <tagger class="com.norconex.committer.googlecloudsearch.BinaryContentTagger"/>
      </preParseHandlers>
    </importer>
    

第 4 步:配置网页抓取

在启动网页抓取之前,您必须进行抓取配置,使其仅包含您的组织希望在搜索结果中出现的信息。网页抓取最重要的设置在 <crawler> 节点中,可以包括:

  • 启动网址
  • 抓取深度上限
  • 线程数

您可以根据需要更改这些配置值。如需详细了解如何设置网页抓取,以及可用配置参数的完整列表,请参阅 HTTP Collector 的配置页面。

第 5 步:启动网页抓取并上传内容

安装该索引器插件并进行了设置后,您可以在本地模式下自行运行该插件。

以下示例假定所需组件位于 Linux 系统的本地目录中。运行以下命令:

$ ./collector-http[.bat|.sh] -a start -c gcs-crawl-config.xml
    

通过 JEF Monitor 监控抓取工具

Norconex JEF (Job Execution Framework) Monitor 是一款图形工具,用于监控 Norconex Web Crawler (HTTP Collector) 进程和作业的进度。如需查看有关设置此实用程序的完整教程,请参阅通过 JEF Monitor 监控抓取工具的进度