您可以使用 Cloud Search 数据库连接器设置 Google Cloud Search,使其能够从贵组织的数据库中查找所需内容并将其编入索引。
重要注意事项
只要 Cloud Search 数据库连接器可以访问互联网和数据库,您就可以在几乎任何能运行 Java 应用的环境中安装和运行该连接器。
系统要求
| 系统要求 | |
|---|---|
| 操作系统 | Windows 或 Linux |
| SQL 数据库 | 任何具有 JDBC 4.0 或更高版本兼容驱动程序的 SQL 数据库,包括:
|
| 软件 | JDBC 驱动程序(需要单独下载和安装) |
部署连接器
以下步骤介绍了如何安装连接器并将其配置为对数据库编制索引,以及如何向 Cloud Search 用户返回结果。
前提条件
在部署连接器之前,请收集以下信息:
- Google Workspace 私钥(包含服务账号 ID)。请参阅配置对 Cloud Search API 的访问权限。
- Google Workspace 数据源 ID。请参阅添加可供搜索的数据源。
第 1 步:下载并构建数据库连接器软件
从 GitHub 克隆连接器代码库。
$ git clone https://github.com/google-cloudsearch/database-connector.git $ cd database-connector
查看所选版本:
$ git checkout tags/v1-0.0.3
构建连接器:
如需跳过测试,请使用$ mvn package
mvn package -DskipTests。将连接器 zip 文件解压缩到安装目录:
$ cp target/google-cloudsearch-database-connector-v1-0.0.3.zip installation-dir $ cd installation-dir $ unzip google-cloudsearch-database-connector-v1-0.0.3.zip $ cd google-cloudsearch-database-connector-v1-0.0.3
第 2 步:配置数据库连接器
创建一个名为
connector-config.properties(默认名称)的文本文件。Google 建议使用.properties或.config扩展程序。将其保存在与连接器相同的目录中。以键值对的形式添加参数。该文件必须指定数据源访问权限、数据库访问权限、完整遍历 SQL 语句、内容字段标题和列定义。
# Data source access api.sourceId=1234567890abcdef api.identitySourceId=0987654321lmnopq api.serviceAccountPrivateKeyFile=./PrivateKey.json # Database access db.url=jdbc:mysql://localhost:3306/mysql_test db.user=root db.password=passw0rd # Full traversal SQL statement db.allRecordsSql=select customer_id, first_name, last_name, phone from address_book # Column definitions and URL format db.allColumns=customer_id, first_name, last_name, phone db.uniqueKeyColumns=customer_id url.columns=customer_id # Content field contentTemplate.db.title=customer_id # Optional: ACLs defaultAcl.mode=fallback defaultAcl.public=true # Optional: traversal schedule schedule.traversalIntervalSecs=36000 schedule.performTraversalOnStart=true如需了解特定于数据库的参数,请参阅配置参数参考。如需了解常见参数,请参阅 Google 提供的连接器参数。
第 3 步:运行数据库连接器
从命令行运行连接器:
java -cp "google-cloudsearch-database-connector-v1-0.0.3.jar:mysql-connector-java-5.1.41-bin.jar" com.google.enterprise.cloudsearch.database.DatabaseFullTraversalConnector [-Dconfig=mysql.config]
连接器会报告配置和初始化错误。其他错误(例如无效的 SQL 语法)会在连接器首次尝试访问数据库时显示。
配置参数参考
本部分列出了数据库连接器配置文件中使用的参数。
数据源访问参数
| 设置 | 参数 |
|---|---|
| 数据源 ID | api.sourceId = source-ID
必需。Cloud Search 源 ID。 |
| 服务账号 | api.serviceAccountPrivateKeyFile = path
必需。服务账号密钥文件的路径。 |
数据库访问参数
| 设置 | 参数 |
|---|---|
| 数据库网址 | db.url = database-URL
必需。完整路径,例如: |
| 凭证 | db.user = usernamedb.password = password
必需。必须对相关记录拥有读取权限。 |
遍历 SQL 查询参数
连接器使用 SQL SELECT 查询来遍历记录。
- 完全遍历:读取每个已配置的记录。初始索引和定期重新索引所必需的。
- 增量遍历:仅读取新修改的记录。需要数据库中的时间戳字段。
| 设置 | 参数 |
|---|---|
| 完全遍历查询 | db.allRecordsSql = SELECT columns FROM table
必需。包含用于内容、ID 和 ACL 的所有列。 |
| 增量遍历查询 | db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?
对于增量时间表是必需的。“?”是必需的时间戳占位符。 |
列定义参数
| 设置 | 参数 |
|---|---|
| 所有列 | db.allColumns = column-1, column-2, ...
必需。列出 SQL 查询中引用的所有列。 |
| 唯一键列 | db.uniqueKeyColumns = column-1
必需。定义每条记录的唯一 ID。 |
| “网址链接”列 | url.columns = column-1
必需。指定用于可点击搜索结果的列。 |
内容字段
| 设置 | 参数 |
|---|---|
| 标题列 | contentTemplate.db.title = column-name
必需。搜索索引编制的最高优先级。 |
| 优先级规则 | contentTemplate.db.quality.high = column-1
将列指定为高、中或低质量。 |