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

Elasticsearch搜索结果多类目评分排序方法及影响因素咨询

多类目搜索结果的评分排序方案(Elasticsearch)

一、Elasticsearch中类目评分的实现方式

针对多类目筛选并取Top3的需求,可通过以下几种方式实现类目级别的评分排序:

1. 聚合+自定义脚本评分

通过terms聚合按类目分组,结合scripted_metric聚合计算每个类目的综合得分,最后按得分排序取Top3类目。这种方式能灵活组合多种维度的指标计算得分。

示例查询:

{
  "size": 0,
  "query": {
    "match": {
      "title": "鞋子"
    }
  },
  "aggs": {
    "category_ranking": {
      "terms": {
        "field": "category.keyword",
        "size": 3,
        "order": {
          "category_total_score": "desc"
        }
      },
      "aggs": {
        "category_total_score": {
          "scripted_metric": {
            "init_script": "state.total_match_score = 0; state.doc_count = 0; state.total_sales = 0;",
            "map_script": "state.total_match_score += _score; state.doc_count += 1; state.total_sales += doc['sales_count'].value;",
            "combine_script": "return { avg_match_score: state.total_match_score / state.doc_count, doc_count: state.doc_count, sales: state.total_sales };",
            "reduce_script": "double score = 0; for (s in states) { score = (s.doc_count * 0.5) + (s.avg_match_score * 0.3) + (s.sales / 1000 * 0.2); } return score;"
          }
        },
        "top_docs": {
          "top_hits": {
            "size": 5
          }
        }
      }
    }
  }
}

该查询通过脚本将类目匹配文档数、文档平均匹配得分、类目总销量按权重组合成类目得分,最终返回得分最高的3个类目及对应Top文档。

2. 预计算类目权重+函数评分查询

提前为每个类目配置业务权重(如男士鞋0.8、女士鞋0.7、运动鞋0.6、儿童鞋0.5),存储为category_weight字段。搜索时用function_score将类目权重与文档自身的BM25得分结合,再通过聚合取Top3类目。

示例函数评分配置:

{
  "query": {
    "function_score": {
      "query": { "match": { "title": "鞋子" } },
      "functions": [
        {
          "field_value_factor": {
            "field": "category_weight",
            "factor": 1.2,
            "modifier": "none"
          }
        }
      ],
      "boost_mode": "multiply"
    }
  }
}

3. 基于语义相似度的类目评分

若使用Elasticsearch的向量搜索功能,可预先将类目名称(如“男士鞋”“运动鞋”)转换为向量存储。搜索时计算“鞋子”与每个类目向量的相似度,将相似度作为类目得分的核心依据,再结合业务指标调整排序。

二、评分的核心影响因素

类目评分的核心逻辑需平衡搜索相关性与业务价值,主要影响因素包括:

  • 类目与搜索词的语义匹配度:通过同义词、上下位词关联(如“运动鞋”属于“鞋子”的子类)、向量相似度计算,衡量类目与搜索词的语义贴合度,匹配度越高得分越高。
  • 类目下匹配文档的数量:类目包含的搜索匹配文档越多,说明该类目与搜索词的关联度越强,可赋予更高权重。
  • 类目下文档的平均质量得分:取类目下所有匹配文档的BM25/TF-IDF得分平均值,反映类目整体的内容匹配质量。
  • 类目业务热度:类目的销量、用户点击量、收藏量等真实行为数据,直接反映用户对该类目的关注度,是业务侧重要的评分依据。
  • 人工配置的类目优先级:根据业务策略(如当季热销品类、重点推广类目)手动设置固定权重,优先展示高优先级类目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:05:33