全部产品
Search
文档中心

智能开放搜索 OpenSearch:类目预测功能使用

更新时间:Aug 22, 2026

流程介绍

温馨提示:图中的内容必须都配置上,类目预测才会生效。

流程演示

创建并训练类目预测模型

  1. 在左侧导航栏中,进入排序配置->类目预测页面,点击“创建”,进入创建流程。

  2. 进入创建流程后,需要填入模型名称,数据类型,商品ID,商品标题,类目ID,类目名称,过滤条件等信息。

    示例中,目标应用选择Ha3引擎下的keep_algo_metrics_enh_vpc模型名称填写test_categroy_model数据类型勾选物品数据,字段映射中商品ID选择id商品标题选择title类目ID选择cate_id类目名称选择title

    • 数据类型:

      • 物品数据即为当前应用中已有的文档数据,但需要应用中需要事先保存类目ID、物品标题以及类目名称三个字段的数据;

      • 行为数据为上传的用户点击行为采集数据,具体可参考数据采集文档

    • 类目ID:应用中表示类目ID的字段,支持INT类型。必填。

    • 物品标题:应用中表示物品标题的字段,支持TEXT、LITERAL类型。必填。

    • 类目名称:应用中表示类目名称的字段,支持TEXT、LITERAL类型。必填。

    • 过滤条件:选填。如果要填写,需要保证过滤条件中出现的字段名称必须是应用结构中的字段名称。过滤条件支持的操作运算符有:<、>、<=、>=、=、!=。多个过滤条件之间为AND关系,必须要使用英文逗号(,)分隔,表示且关系(暂不支持或关系)。例如,过滤条件为 is_onsale > 0。

  3. 配置完成后点击完成进入类目预测模型详情页。

  4. 模型创建完成后,返回类目预测页面,看到模型状态为“待训练”,点击“启动训练”,训练模型数据。

类目预测训练状态:

  • 待训练:表示模型刚创建完成,但未做数据训练的模型。

  • 训练中:表示模型创建完成后进入训练但还未完成训练的模型。

  • 训练失败:表示数据错误造成的模型训练失败的模型。

  • 未应用:表示模型训练成功,但并未在召回和排序功能中应用该模型。

配置查询分析和排序表达式

  1. 在左侧导航栏中,进入召回配置->查询分析页面,点击“创建”,进入创建流程。

  2. 进入创建流程后,按下图流程进行规则的编辑和创建。

  3. 然后在粗排或者精排中生效类目预测模型。在左侧导航栏中,进入 排序配置->策略管理 页面,点击“创建”,进入创建流程。

以下为应用到基础排序中的流程:

  1. 进入创建流程后填写策略名称,首先选择基础排序(第一轮粗排),选择类型(目前控制台配置仅支持表达式,后续还会支持自定义插件)。

  2. 然后在排序配置中,选中算分特征下的category_score()

  3. 并配置搜索字段以及该算分特征的权重,并保存配置。

    例如,选择算分特征为 category_score(),搜索字段为 is_onsale,将权重设置为 13

以下为应用到业务排序中的流程:

  1. 进入创建流程后填写策略名称,首先选择业务排序(第二轮精排),选择类型(目前控制台配置仅支持表达式,后续还会支持自定义插件)。

    目标应用下拉框中选择需要配置排序策略的应用。策略名称长度为1-30个字符,以字母开头,可包含大小写字母、数字和下划线,且不能与其他同类型策略名称相同。

  2. 然后在排序配置中,选中内置函数下的category_score(cate_id_field)

  3. 将cate_id_field改为模型的类目ID,并保存配置。

    在排序配置的文本编辑区域中,输入表达式 category_score(cate_id),将其中的 cate_id 替换为实际的类目 ID,然后单击完成

  4. 模型应用成功后的状态。

    模型在查询分析以及策略管理中应用成功后,模型管理列表中该模型的近一次训练状态列显示为已应用

  5. 搜索测试效果展示,需要添加参数raw_query=查询词。

    在搜索测试页面选择应用test_1线上应用,query输入框填写default:'糯米',子句配置为config=start:0;hit:10;format:fulljson,在参数区域即可看到raw_query值为糯米

通过SDK调用查询接口

设置查询参数raw_query:

  • 用于类目预测查询;只有查询词和raw_query的内容一致时,查询时,才会去查查询分析中配置的类目预测;

  • 一般建议设置为终端用户输入的原始查询词。格式:

    raw_query=content
    //API传参content需要URL_ENCODE(SDK不需要encode);content为原始查询词

    实例:假设某个应用的查询分析规则配置如下表所示:

索引名

查询分析规则名

配置类目预测

index1

rule1

No

index2

rule2

Yes

index3

rule3

Yes

  1. 查询的索引没有配置类目预测,请求中有raw_query,不会查询类目预测,查询正常返回;

  2. 查询的索引没有配置类目预测,请求中无raw_query,不会查询类目预测,查询正常放回;

  3. 查询的索引配置类目预测,请求中无raw_query,不会查询类目预测,查询正常返回:a. query=index2:'search_query'

  4. 查询的索引配置类目预测,请求中有raw_query,但和查询索引中的查询词不同,不会查询类目预测,查询正常返回:a. query=index2:'search_query'&raw_query=raw_query

  5. 查询的索引配置类目预测,请求中有raw_query,且和查询索引中的查询词相同,查询类目预测,查询正常返回:a. query=index2:'search_query'&raw_query=search_query

  6. 查询包含多个索引时,且query中有raw_query:a. query=index2:'index_query' AND index3:'search_query'&raw_query=search_query       # 类目预测在index3上生效;b. query=index2:'search_query' AND index3:'search_query'&raw_query=search_query      # 类目预测会优先在index2上生效,如没有结果,会查询index3上的类目预测

注意事项

  • 单个应用最多创建5个类目预测模型。

  • 查询分析规则中配置的类目预测模型,其训练字段必须是该包含在该查询规则所应用的索引中;

  • 在创建类目预测模型之前,需要保证类目预测所使用的相关字段(类目ID)已添加到属性字段列表中

  • 当查询分析中配置了类目预测时,如果查询请求中设置了category_prediction参数,查询会报错。

  • 必须同时配置了查询分析(类目预测)、排序表达式(category_score)以及查询时带有固定参数(raw_query),类目预测模型才会生效。

  • 如果创建模型时勾选了行为数据,类目预测模型会预测最近14天内被点击过的查询(query),换言之,如果没有被点击,就不会有类目预测结果。

  • 类目ID必须为正数,不能为负数,否则查询会报错server error。

  • 训练类目预测需要满足最近一天的独立query数量大于100 , 独立query数量表示在搜索请求中添加raw_query参数请求成功的次数。

  • 相关管控API:算法周边

  • 请勿勾选“查询分析-文本向量化”功能,文本向量化有默认的查询策略,会触发多路查询,查询策略里面有个结果归并排序,这个归并排序里面不支持获取类目预测的排序得分。

模型训练失败排查

当类目预测模型训练失败时,可按以下步骤排查原因并解决:

  1. 查看异常报表:在模型详情页查看最新版本状态,若状态显示异常,可查看异常报表,定位训练失败的具体原因。

  2. 查看完整度等级与升级条件:查看完整度等级及对应的升级条件,按升级条件调整数据以提升完整度,满足训练要求。

  3. T-1 数据逻辑(新创建模型首次训练报字段不存在):模型训练使用前一天(T-1)的统计数据。若模型是当天新创建的,因当天尚无前一天的数据,首次训练可能报"训练字段不存在"错误。此情况属正常现象,等待次日数据就绪后重新启动训练即可。

  4. 数据量要求(L1 条件):训练需满足以下数据量条件:

    • 数据表中的数据量不少于 1000 条。

    • 最近一天的独立 query 数量大于 100(独立 query 数量为搜索请求中添加 raw_query 参数请求成功的次数)。

  5. 过滤条件格式:若配置了过滤条件,字段名须为应用结构中的字段名称,多个条件之间为 AND 关系,必须使用英文逗号(,)分隔。格式不符会导致训练失败。

进阶

  1. 查询规则中配合实体识别功能使用类目预测,可以扩大类目预测的召回。查询分析会更加实体识别的结果,在原query查询得到类目预测无结果时,会按照一定规则对query进行丢词,进一步查询类目预测,并将丢词后的类目预测结果作为最终的类目预测结果返回。具体见实体识别的文档。

  2. 目前支持对训练出的类目预测模型进行人工干预。用户实现干预操作的过程与查询分析干预类似,类目预测干预的操作步骤,请点击查看文档