1. 为什么要在 WCM 启用全文搜索
- 更好的检索体验:支持对 WCM 内容正文、组件字段、富文本内的文本进行检索,而不仅仅是标题或元数据。
- 精细过滤:配合内容类型(Authoring Templates)、站点区域(Sites/Library)、分类与标记,可实现面向业务的搜索过滤。
- 可扩展:与 Portal Search/Embedded Solr 集成,支持增量索引、定时重建、按需重建与多语言分片。
2. 前置条件与环境检查
在启用之前,先完成基础核查与准备:
- 版本与修订:
- Portal/DX 版本为 9 及以上。
- 安装必要的 CF(尤其涉及 Search/WCM 修复),以获得最新的索引器与安全修复。
- 拓扑:
- 单机或集群均可。集群需确保每个节点使用一致的 Search 配置并共享索引或使用集中式搜索服务。
- 权限:
- 需要 Portal 管理员权限(
wpsadmin
或同等角色); - WCM 库读权限和管理权限,用于检查内容与草稿/发布状态;
- 对搜索管理(Search Administration)页面的访问权限。
- 需要 Portal 管理员权限(
- 服务与端口:
- 确认 Portal 已启用搜索应用(Search Center/Unified Search)。
- WebSphere 应用服务器对应端口开放(例如 HTTP 10039/ HTTPS 10042 等因环境而异)。
- 语言与编码:
- 目标语言的分词/分析器可用(中文建议使用中文兼容分析器或配置 ICU 分词支持,如在外置 Solr)。
3. WCM 全文搜索启用的总体流程
- 配置并启用搜索服务(Portal Search 或外部搜索服务)。
- 在搜索集合(Search Collection)中添加 WCM 索引源(Crawler/Seed)。
- 在 WCM 启用内容可搜索属性(可通过“呈现选项”“工作流阶段”或库级属性)。
- 运行初始全量索引(Full Crawl/Build)。
- 配置增量索引任务(定时器/调度器)。
- 在前端页面放置并配置搜索组件(Search Portlet/Scripted Query/WCM Rendering),并设置查询参数与作用范围。
- 验证、监控与优化(字段权重、停用词、高亮、语言分析器)。
4. 启用与配置 Portal/DX 搜索服务
4.1 确认搜索功能已安装并启用
- 在 Portal 管理控制台中打开“Search Administration”(搜索管理):
- 检查是否存在默认的搜索集合(Search Collection),若无则新建。


4.2 新建搜索集合(Search Collection)
- 进入 Search Administration,选择“新建搜索集合”(Create New Search Collection):
- 名称:
collect9
- 存储位置:选择高 IO 的磁盘路径(集群建议使用共享存储)
- 语言与分析器:根据站点语言设置。
- 名称:
提示:如果使用外部 Solr/Elasticsearch,请在“Search Service”层完成连接(endpoint、认证、collection/core 名等),并确保 Portal 可以读写该集合。

5. 为 WCM 内容添加索引源(WCM Seed)
5.1 添加 WCM 索引源
- 在 Collect9选择“新建内容源“(Add Seed):
- 类型:WCM站点
- 内容源名称:
Source9
- URL:http://portalserver01:10039/wps/seedlist/myserver?SeedlistId=Portal&Source=com.ibm.workplace.wcm.plugins.seedlist.retriever.WCMRetrieverFactory&Action=GetDocuments
注意:SeedlistId后面的Portal要换成环境里实际创建的WCM库的名称 - 然后点击安全性,定义好用于爬取资料的账户
- 认证:HTTP基本
- 用户名:wpsadmin
- 主机名:portalserver01 (一定要能在服务器本地解析为IP,不要直接填写IP地址)
- 然后点击创建/更新,就会显示在右侧”安全性”区域。

5.2 WCM Seed 关键参数
- 库(Library):选择需要被索引的一个或多个 WCM 库。如
CorporateSite
,News
,Products
- 内容类型过滤(Authoring Template / Content Type):
- 可留空(索引库内所有内容),或指定模板列表,例如
AT_NewsArticle, AT_Product
- 可留空(索引库内所有内容),或指定模板列表,例如
- 发布状态(State):
- 建议选择
Published Only
(仅发布内容)
- 建议选择
- 渲染模式(Render/Raw):
- 渲染模式会通过呈现组件获取最终文本(含富文本字段处理),适合最终展示检索;
- 原始模式可更快但对富文本提取有限。多数场景建议渲染模式。
- 语言(Locale):
- 若多语言站点,选择
All Locales
,或为每个语言建立单独 seed 以便分片与权重调优
- 若多语言站点,选择
- 日期范围(Time Window):
- 可设置“仅索引某时间范围内更新的内容”以便增量任务使用
- 安全过滤(Security/ACL awareness):
- 启用“Respect Item Security/ACL”,使搜索结果自动遵循用户权限
- 最大项大小/超时(Max Item Size / Timeout):
- 如:
Max Render Time: 10s
,Max Content Size: 5 MB
,根据页面复杂度调整
- 如:
- 索引字段映射(Field Mapping):
- 标题映射:
title -> wcm_title
- 正文映射:
body / richtext -> wcm_body
- 元数据:
sitearea, categories, tags -> wcm_sitearea, wcm_category, wcm_tag
- 唯一键:
uuid -> id
(保持稳定主键)
- 标题映射:
- 抓取间隔与并发(Crawl Interval / Concurrency):
- 并发线程:
2-4
(视服务器负载) - 抓取延迟:
100-300 ms
(避免渲染高峰期压力)
- 并发线程:
注意:字段命名以你的搜索服务字段 schema 为准。
6. 在 WCM 端确保内容可被检索
6.1 库与项目的可搜索设置
- 在 WCM Authoring UI 中,检查库级或站点区域的属性是否允许搜索:
- “Searchable” 或 “Include in search index” 开关开启
- 对单个内容项(Content Item):
- 在“呈现选项/Presentation”或“属性/Properties”中勾选“Include in search”
- 确保内容状态为“已发布(Published)”并已通过工作流
6.2 字段与模板
- 在 Authoring Template 中对关键字段打标签便于索引器识别:
- 标题字段:
Title
- 正文字段:
Rich Text
,Summary
- 元数据:
Keywords
,Categories
,Tags
- 标题字段:
- 富文本中的附件/链接:
- 若需要让附件文本(PDF/Office)可搜索,需在搜索服务端启用 Tika/内容抽取器(外部 Solr/ES 场景)
7. 运行初始全量索引
7.1 触发全量构建
- 在
搜索集合(Collect9)
中,选择WCM索引源(Content9)
,点击Rebuild
或Full Crawl

- 监控进度:
- Search Admin 控制台中的“任务队列/日志”
- 应用服务器日志(
SystemOut.log
)中查看抓取与提交进度


7.2 全量索引性能建议
- 默认是间隔2小时执行增量索引,也可调整到在业务低峰期执行
- 临时提高并发线程与提交批量大小(commitWithin/autoCommit),完成后恢复到稳态配置
- 观察 CPU、JVM Heap、GC 情况;为渲染模式预留足够的堆内存
8. 配置增量索引与调度
8.1 增量索引(Delta/Incremental)
- 在 Seed 配置中开启“Incremental crawl”,并设置变更检测策略:
- 依据 WCM 修改时间戳(
lastModified
)或 Syndication 事件
- 依据 WCM 修改时间戳(
- 建议参数:
- 周期:
*/15 * * * *
(每 15 分钟一次)或按业务需要 - 批量提交:
commitWithin=10000 ms
- 最大变更抓取数:
500-2000
(按更新频率与硬件调节)
- 周期:
8.2 定时任务(Scheduler)
- 在 Search Admin 或 Portal 任务调度器中创建计划任务:
- 任务名:
WCM-Incremental-Index
- 触发器:Cron 表达式,例如
0 */15 * * * ?
- 超时:
600 s
- 失败告警:邮件或监控系统
- 任务名:
9. 搜索前端与查询参数
9.1 放置搜索组件
- 在 Portal 页面中添加搜索 Portlet(Search Center/Unified Search Portlet)或自定义组件:
- 搜索范围(collection):
WCM-Content-Collection
- 默认查询字段:
wcm_title^3 wcm_body^1 wcm_tag^2
- 过滤器:按库/站点区域,示例:
wcm_library:CorporateSite AND state:published
- 搜索范围(collection):
9.2 查询与高亮参数示例
- 基本查询:
q=用户输入关键词
defType=edismax
qf=wcm_title^3 wcm_body^1 wcm_tag^2
- 过滤与分页:
fq=state:published
start=0&rows=10
- 排序:
sort=score desc, lastModified desc
- 高亮:
hl=true&hl.fl=wcm_title,wcm_body&hl.simple.pre=<em>&hl.simple.post=</em>
- 多语言:
fq=locale:zh_CN
或使用独立 collection/seed
若使用自定义前端,可通过 REST/JSON API 直接调用搜索服务(Solr/ES),再按权限过滤结果。

10. 集群与安全注意事项
- 集群部署:
- 使用共享索引或集中式搜索节点;避免每节点维护独立索引导致结果不一致
- 确保各节点环境变量、JNDI、搜索 endpoint 一致
- 安全传播(ACL):
- 开启“Security-aware indexing”,并在查询时启用“Filter by user context”(Portal 会注入来宾/登录用户的可见性过滤)
- 同步与发布:
- WCM Syndication(内容同步)完成后再触发增量索引;避免索引空洞
- SSL 与证书:
- 搜索服务走 HTTPS 时导入受信证书到 Portal truststore,确保 crawler 与提交不报握手错误
11. 常见问题与排障
- 问题:已发布内容搜不到
- 检查内容是否勾选“Include in search”
- 确认 seed 过滤条件没有将该库/模板排除
- 查看增量任务是否正常运行;必要时发起全量重建
- 问题:富文本内文字未被索引
- 切换到渲染模式索引,或启用内容抽取器(Tika)以解析 HTML/附件
- 问题:中文分词效果差
- 在外置 Solr 中使用中文适配的 analyzer(如 ICU、SmartChinese 或第三方分词)并统一字段类型
- 问题:结果与权限不符
- 确认开启 ACL-aware 索引与查询侧的安全过滤;核对用户在 WCM 库和站点区域的访问权
- 问题:索引膨胀或提交很慢
- 调整 autoCommit、mergePolicy 与 segment 数量;定期优化与清理已删除文档
- 日志位置:
- Portal:
SystemOut.log
,trace.log
(开启com.ibm.portal.search.*=all
提高诊断)
- Portal:
参考文档: