您可以将 Google Cloud 搜索设置为除了 Google Workspace 内容之外,还返回贵组织的 Microsoft Windows 共享内容中的搜索结果。您使用 Google Cloud Search 文件系统连接器,并将其配置为访问指定的 Windows 共享。单个连接器实例可以支持多个 Microsoft Windows 共享。
重要注意事项
持续自动更新
默认情况下,连接器在启动时会持续监控起始路径(连接器配置文件中的 fs.src
中的值)。当文件系统报告内容或访问控制的更改时,系统会触发连接器重新抓取文件系统。此重新抓取可能会占用大量资源。如需关闭文件系统监控,请将 fs.monitorForUpdates
设置为 false
。您可以显著减少连接器的资源用量,但连接器反映更改的时间会延迟。了解详情
DFS 访问控制
DFS 系统会对其链接应用访问控制,通常每个 DFS 链接都有自己的 ACL。DFS 使用的一种机制是基于访问权限的枚举 (ABE),它可以限制向用户返回的 DFS 链接。当 ABE 隔离托管主目录时,用户可能只会看到一部分 DFS 链接,甚至可能只会看到一个链接。连接器遍历 DFS 系统时,会遵循 DFS 链接 ACL 和目标的共享 ACL,并且共享 ACL 会继承自 DFS ACL。
已知限制
- 文件系统:文件系统连接器不支持映射驱动器和本地驱动器。
- 分布式文件系统:映射到 UNC DFS 的驱动器无法正常工作。系统无法正确读取某些 ACL。
- 文件系统连接器支持分布式文件系统 (DFS) 命名空间和链接。但它仅支持 DFS 命名空间中的 DFS 链接,而不支持 DFS 命名空间中的常规文件夹。
- cloudsearch.google.com 中返回的文件链接不可点击。在大多数浏览器中,Query API 返回的文件链接也不可点击。
系统要求
系统要求 | |
---|---|
操作系统 |
|
软件 |
|
文件系统协议 |
不支持:本地 Windows 文件系统、Sun 网络文件系统 (NFS) 2.0、Sun 网络文件系统 (NFS) 3.0 或本地 Linux 文件系统。 |
部署连接器
前提条件
在部署 Cloud Search 文件系统连接器之前,请确保您的环境具有以下所有必备组件:
在 Google Cloud Search 和数据源之间建立关系所需的 Google Workspace 信息:
- Google Workspace 私钥(包含服务账号 ID)。如需了解如何获取私钥,请参阅 配置对 Google Cloud Search REST API 的访问权限。
- Google Workspace 数据源 ID。如需了解如何获取数据源 ID,请参阅添加要搜索的数据源。
- 身份源 ID。如需了解如何获取身份源 ID,请参阅创建身份源。如果您将 Google Workspace 目录与 Active Directory 同步,请使用 GCDS 设置身份源。
贵组织的 Google Workspace 管理员通常可以为您获取这些凭据。
确保 Windows 账号具有足够的权限,如以下部分所述。
所需的 Microsoft Windows 账号权限
运行连接器的 Microsoft Windows 账号必须具有足够的权限才能执行以下操作:
- 列出文件夹的内容
- 读取文档的内容
- 读取文件的属性和文件夹的属性
- 读取对文件和文件夹的权限 (ACL)
- 写入基本特性权限
以下某个群组中的成员可为 Windows 账号授予连接器所需的足够权限:
- 管理员
- 高级用户
- 打印操作员
- 服务器操作员
第 1 步:安装 Google Cloud Search 文件系统连接器
从 GitHub 获取连接器代码库并进行构建。
如需在 Windows 服务器上使用 git,请执行以下操作:
克隆代码库:
> git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git > cd windows-filesystems-connector
检出所需的连接器版本:
> git checkout tags/v1-0.0.3
如需直接从 GitHub 下载,请执行以下操作:
- 前往 https://github.com/google-cloudsearch/windows-filesystems-connector。
- 依次点击克隆或下载 下载 ZIP。
- 解压缩该软件包。
- 移动到新目录:
> cd windows-filesystems-connector
构建连接器。如有必要,请安装 Apache Maven。
> mvn package
如需在构建连接器时跳过测试,请运行
mvn package -DskipTests
而不是mvn package
。将连接器 zip 文件复制到本地安装目录:
> cp target/google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip installation-dir > cd installation-dir > unzip google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip > cd google-cloudsearch-windows-filesystems-connector-v1-0.0.3
第 2 步:创建连接器配置文件
在连接器安装目录中,创建一个文件并将其命名为
connector-config.properties
。将参数作为键值对添加到文件内容中,如以下示例所示:
### File system connector configuration ### # Required parameters for Cloud Search data source and identity source access api.serviceAccountPrivateKeyFile=/path/to/file.json api.sourceId=0123456789abcde api.identitySourceId=a1b1c1234567 # Required parameters for file system access fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link # Optional parameters for file system monitoring traverse.abortAfterExceptions=500 fs.monitorForUpdates = true fs.preserveLastAccessTime = IF_ALLOWED
(可选)根据需要配置其他连接器参数。如需了解详情,请参阅 Google 提供的连接器参数。
第 3 步:启用日志记录
- 在包含连接器二进制文件的目录中创建一个名为
logs
的文件夹。 在包含连接器二进制文件的目录中创建一个名为
logging.properties
的 ASCII 或 UTF-8 文件,并添加以下内容:handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler # Default log level .level = WARNING com.google.enterprise.cloudsearch.level = INFO com.google.enterprise.cloudsearch.fs.level = INFO # uncomment line below to increase logging level to enable API trace #com.google.api.client.http.level = FINE java.util.logging.ConsoleHandler.level = INFO java.util.logging.FileHandler.pattern=logs/connector-fs.%g.log java.util.logging.FileHandler.limit=10485760 java.util.logging.FileHandler.count=10 java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
第 4 步:(可选)配置媒体类型
默认情况下,连接器会尝试使用 JDK 提供的媒体类型检测功能来检测每个文件的媒体类型。在 Microsoft Windows 上,JDK 依赖于 Windows 注册表来确定文件的媒体类型。如果缺少注册表条目,可能会导致某些文件的媒体类型为 null。
如有必要,您可以指定一种媒体类型来覆盖任何现有绑定或防止使用 null 媒体类型。
- 在连接器目录中,创建一个名为
mime-type.properties
的拉丁 1 加密文件。 输入文件扩展名及其对应的媒体类型,如以下示例所示:
xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet one=application/msonenote txt=text/plain pdf=application/pdf
第 5 步:运行文件系统连接器
安装并配置文件系统连接器后,如需在主机上启动该连接器,请运行类似以下示例的命令:
> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]
如果配置文件路径与默认路径不同,请指定该路径(应与名为 connector-config.properties
的二进制文件位于同一目录中)。
配置参数参考
数据源访问权限
设置 | 参数 |
数据源 ID | api.sourceId=1234567890abcdef
必需。由 Google Workspace 管理员设置的 Google Cloud Search 源 ID。 |
服务账号私钥文件的路径 | api.serviceAccountPrivateKeyFile=./PrivateKey.json
必需。访问 Google Cloud Search 文件系统连接器所需的 Google Cloud Search 服务账号密钥文件。 |
身份源 ID | api.identitySourceId=x0987654321
必需。由 Google Workspace 管理员设置的 Cloud Search 身份源 ID,用于通过 GCDS 同步 Active Directory 身份。 |
文件系统访问
设置 | 参数 |
源文件系统 | fs.src=path1[,path2, ...]
必需。将源文件系统指定为一个或多个 UNC 源,这些源由 |
路径分隔符
设置 | 参数 |
路径分隔符 | fs.src.separator=separator-character
默认分隔符为“;”。如果您的源路径包含英文分号,则可以设置其他分隔符(例如英文逗号“,”),该分隔符不得与路径中的字符冲突,并且没有被属性文件语法本身预留。 如果 |
连接器行为
设置 | 参数 |
Windows 网域 | fs.supportedDomain=domain
如要允许使用 GCDS 设置的用户通过 Cloud Search 访问文档,则此为必填参数。请将此参数指定为 Active Directory 的单个 NetBIOS 域名。 |
在 ACL 中添加账号 | fs.supportedAccounts=account-1[, account-2,...]
以逗号分隔的账号列表,无论这些账号是否为内置账号,都将添加到 ACL 中。 默认值为 |
从 ACL 中排除内置账号 | fs.builtinGroupPrefix=prefix
指定内置账号的前缀。以此前缀开头的账号会被视为内置账号,将会从 ACL 中排除。 默认值为 |
允许将隐藏文件和隐藏文件夹编入索引 | fs.crawlHiddenFiles=boolean
设置为 |
允许将抓取的文件夹列表和 DFS 命名空间枚举编入索引 | fs.indexFolders=boolean
如果设置为 |
启用文件系统更改监控功能 | fs.monitorForUpdates=boolean
如果设置为 |
设置目录缓存的大小上限 | fs.directoryCacheSize=number-of-entries
目录缓存的大小上限。连接器使用缓存来识别隐藏文件夹,以避免将隐藏文件夹中的文件和文件夹编入索引。 默认值为 50,000 个条目,通常占用 10-15 MB RAM。 |
时间戳保留和抓取控制
设置 | 参数 |
保留上次访问时间戳 | fs.preserveLastAccessTime=value
连接器抓取文件和文件夹时,可以将文件和文件夹的上次访问时间戳更改为抓取时间。如果未保留上次访问时间,则备份和归档系统可能会因连接器的访问而未将相应文件和文件夹移至辅助存储空间。 默认情况下,连接器会尝试保留上次访问时间(将 可能的值:
|
仅抓取在特定日期之后访问过的文件 | fs.lastAccessedDate=YYYY-MM-DD
仅在内容的上次访问时间晚于指定日期时抓取内容。默认值为 请使用 ISO8601 日期格式 YYYY-MM-DD 指定日期。例如,如果该值为 2010-01-01,则连接器只会抓取 2010 年年初之后访问过的内容。 如果您指定了 |
仅抓取过去指定天数内访问过的文件 | fs.lastAccessedDays=number-of-days
仅在内容上次访问时间在指定天数内时抓取内容。默认值为 您可以使用此属性使先前已编入索引且在一段时间内未访问过的内容失效。例如,将其设置为 365 表示仅抓取在过去一年内被访问过的内容。 如果您指定了 |
仅抓取在特定日期之后修改的文件 | fs.lastModifiedDate=YYYY-MM-DD
仅抓取上次修改时间晚于指定日期的内容。默认值为 请使用 ISO8601 日期格式 YYYY-MM-DD 指定日期。例如,如果该值为 2010-01-01,则连接器只会抓取 2010 年年初之后修改过的内容。 如果您指定了 |
仅抓取过去指定天数内修改过的文件 | fs.lastModifiedDays=number-of-days
仅在内容的上次修改时间在指定天数内时抓取内容。默认值为 您可以使用此属性使先前已编入索引且在一段时间内未修改过的内容失效。例如,将其设置为 365 表示仅抓取过去一年内修改过的内容。 如果您指定了 |
跳过文件共享访问控制
默认情况下,连接器在向 Indexing API 发送访问控制列表 (ACL) 时会保留访问控制完整性,包括文件共享的 ACL。不过,在某些配置中,连接器可能没有足够的权限来读取共享 ACL。在这些情况下,连接器不会在搜索结果中返回该文件共享中维护的任何文件。
您可以将连接器设置为忽略共享 ACL,以便始终在搜索结果中返回内容。在这种情况下,编制索引 API 会获得一个完全能够访问的共享 ACL,而不是实际的共享 ACL。
设置 | 参数 |
跳过文件共享访问控制 | fs.skipShareAccessControl=boolean
设置为 |