You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过IBM Content Navigator插件为搜索模板追加隐藏搜索条件

实现方案

1. 自定义ICN插件基础结构搭建

首先按照IBM Content Navigator官方开发规范创建标准插件工程,继承Plugin基础类,完成插件的基础配置。

2. 功能实现(两种可选方案)

方案1:前端JS拦截(实现成本低,适合普通场景)

重写搜索模板的原生搜索方法,在请求发出前自动追加隐藏条件,代码写入插件的主JS加载逻辑中即可:

// 备份原有搜索方法
const originSearchMethod = ecm.model.SearchTemplate.prototype.search;
ecm.model.SearchTemplate.prototype.search = function() {
  // 构造隐藏的搜索条件
  const hiddenCondition = new ecm.model.SearchCriterion({
    name: "strStatus",
    operator: "EQUAL",
    values: ["In Progress"],
    dataType: "STRING",
    hidden: true // 标记为隐藏,不会在搜索模板界面对外展示
  });
  // 临时插入到当前搜索条件列表
  this.searchCriteria.push(hiddenCondition);
  // 执行原生搜索逻辑
  const result = originSearchMethod.apply(this, arguments);
  // 搜索请求发出后移除临时条件,避免用户下次打开模板时显示该条件
  this.searchCriteria.pop();
  return result;
};

方案2:服务端Java拦截(安全性更高,适合强管控场景)

通过ICN的服务端扩展点实现,避免前端代码被篡改绕过条件过滤:

  1. 实现SearchServiceExtension扩展点,重写预搜索方法:
public class HiddenConditionSearchExtension extends SearchServiceExtension {
    @Override
    public void preSearch(SearchRequest searchRequest, SearchContext searchContext) throws Exception {
        // 构造隐藏查询条件
        QueryCondition statusCondition = new QueryCondition();
        statusCondition.setAttributeName("strStatus");
        statusCondition.setOperator(QueryCondition.OPERATOR_EQUAL);
        statusCondition.getValues().add("In Progress");
        // 追加到全局搜索条件中
        searchRequest.getQueryConditions().add(statusCondition);
    }
}
  1. 在插件主类中注册该扩展点:
@Override
public List<Extension> getExtensions() {
    List<Extension> extensionList = new ArrayList<>();
    extensionList.add(new HiddenConditionSearchExtension());
    return extensionList;
}

3. 验证要点

  • 所有搜索模板的前端界面均不会显示strStatus筛选条件
  • 执行搜索后返回的结果自动匹配strStatus="In Progress"的过滤规则
  • 若需要仅针对特定存储库生效,可在追加条件前增加存储库标识判断逻辑,避免跨库字段不存在报错

内容的提问来源于stack exchange,提问作者pooja purushan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:27:03