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

能否为Solr JSON Facet API统计函数添加域过滤?

Solr 9.0.0 实现带Domain Filter的唯一作者统计

你可以通过嵌套JSON Facet并在父级定义domain过滤的方式,让unique()统计函数和terms分面共享同一个过滤后的数据集,无需修改基础查询。具体实现如下:

核心请求示例

提交这样的JSON查询请求:

{
  "query": "\"War and Peace\"",
  "facet": {
    "filtered_author_scope": {
      "domain": {
        "filter": "author:*doge*"
      },
      "facet": {
        "top_100_doge_authors": {
          "terms": {
            "field": "author",
            "limit": 100
          }
        },
        "total_unique_doge_authors": "unique(author)"
      }
    }
  }
}

逻辑说明

  • 外层的filtered_author_scope是自定义facet块,通过domain.filter指定作者字段包含'doge'的过滤条件,所有子facet都会基于这个过滤后的结果集执行。
  • top_100_doge_authors就是你需要的前100个符合条件的作者terms分面。
  • total_unique_doge_authors通过unique(author)统计该过滤结果集中的唯一作者总数,直接得到目标数值。

注意事项

  • 确保author字段的Schema配置适合分面:如果是文本字段,建议使用keyword分词器或设置为string类型,避免分面时出现拆分后的碎词,导致统计和分面结果不准确。
  • domain.filter支持Solr标准查询语法,比如精确匹配用author:doge,模糊匹配用author:*doge*,可根据实际需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:20:31