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

Confluence 8.0插件开发:searchFilter移除后的查询实现方案咨询

Confluence 8.0 适配:替代 SiteSearchPermissionsSearchFilter 的方案

Confluence 8.0 移除了com.atlassian.confluence.search.v2.searchfilter.SiteSearchPermissionsSearchFilter,且官方文档提及的内部替代类无法在插件中使用。你可以通过公开的PermissionQueryBuilderAPI实现等效的权限过滤逻辑,具体适配方案如下:

步骤1:替换导入类

移除旧过滤器的导入,添加权限查询构建器的相关类:

import com.atlassian.confluence.search.v2.ContentSearch;
import com.atlassian.confluence.search.v2.PermissionQueryBuilder;
import com.atlassian.confluence.search.v2.query.BooleanQuery;
import com.atlassian.confluence.search.v2.sort.RelevanceSort;

步骤2:构建权限查询

使用PermissionQueryBuilder生成对应站点搜索的权限查询,替代原权限过滤器:

// 生成与原SiteSearchPermissionsSearchFilter功能等效的权限查询
var permissionQuery = PermissionQueryBuilder.builder()
    .forSiteSearch() // 匹配原有站点搜索的权限校验逻辑
    .build();

步骤3:组合查询并创建ContentSearch

将原有业务查询与权限查询合并为复合AND查询,直接传入ContentSearch(无需单独的filter参数):

// 合并原有查询与权限查询
var combinedQuery = BooleanQuery.composeAndQuery(allQueries, permissionQuery);

// 创建适配Confluence 8.0的ContentSearch实例
ContentSearch search = new ContentSearch(combinedQuery, RelevanceSort.INSTANCE, 0, 1);

核心说明

  • Confluence 8.0 后,权限过滤逻辑从Filter体系迁移到Query体系,PermissionQueryBuilder是官方提供的公开API,专门用于构建权限相关查询条件,插件可安全调用。
  • forSiteSearch()方法会自动生成与原SiteSearchPermissionsSearchFilter一致的权限校验规则,确保搜索结果仅返回当前用户有权限访问的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:00:22