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

企业搜索中如何修改查询过滤分面计数内的指定租户标签

解决方案

要实现仅返回含company_id=1标签的文档,同时让分面结果只显示该公司的标签,无需事后处理数据,可以通过在查询中添加文档过滤条件+分面专属过滤来实现,具体修改后的查询请求如下:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "tags",
            "query": {
              "term": {
                "tags.company_id": 1
              }
            }
          }
        }
      ],
      "must_not": [
        {
          "nested": {
            "path": "tags",
            "query": {
              "bool": {
                "must_not": {
                  "term": {
                    "tags.company_id": 1
                  }
                }
              }
            }
          }
        }
      ]
    }
  },
  "facets": {
    "tags": {
      "type": "value",
      "filter": {
        "term": {
          "tags.company_id": 1
        }
      },
      "nested": "tags"
    }
  },
  "sort": {
    "created": "desc"
  },
  "page": {
    "size": 20,
    "current": 1
  }
}

关键修改说明

  • 文档过滤逻辑
    • must子句:确保文档至少包含一个company_id=1的标签
    • must_not子句:排除任何含有非company_id=1标签的文档,保证返回的文档仅包含company_id=1的标签
  • 分面过滤逻辑
    • 在facets.tags下添加filter条件,直接限定分面统计仅针对tags中company_id=1的条目
    • 指定nested: "tags"(因为tags是嵌套数组结构),确保搜索引擎正确解析嵌套字段的过滤规则

这样修改后,返回的结果会同时满足:

  • 仅展示符合条件的文档
  • 分面数据只包含company_id=1的标签统计,无需客户端二次剔除冗余内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:15:36