个性化底纹

功能介绍

热搜和底纹是一个完整搜索引擎必备的基本功能,为了更好的满足客户的业务场景需求、优化用户的搜索场景体验,OpenSearch推出了个性化底纹功能,可以实现用户结合自己的搜索兴趣爱好推荐query,既能满足搜索内容的多样性,又能让用户看到自己感兴趣的内容。

配置流程

  1. 登录OpenSearch控制台,左侧菜单依次选择OpenSearch-行业算法版 -> 搜索算法中心 -> 搜索引导 -> 热搜与底纹 ,选择好对应的OpenSearch应用,再点击创建image

  2. 填写模型名称模型类型选择个性化底纹模型,并选择模型训练的所需数据的来源时段训练周期,也支持根据情况设置过滤条件,再点击确定即可:image

  3. 个性化底纹模型创建成功后,即可点击完成或立即训练模型image

  4. 点击训练模型,会弹出提示是否确认立即启动训练,点击确定即可:image

  5. 接下来页面跳转至个性化底纹模型详情页,可以查看模型的基本信息配置信息数据校验训练历史image

  6. 模型状态变为可用最新版本状态变为已训练并就绪,说明模型已训练成功,可以点击效果预览查看效果:image

  7. 效果预览窗口输入userId,点击预览即可:image

注意:

  • 需在搜索处理中包含userId、raw_query参数,数据采集2.0建议上传曝光、点击等用户行为数据后效果更佳;

  • 个性化底纹仅支持OpenSearch-行业算法版独享集群以上规格的实例使用;

  • 个性化底纹训练模型的训练需单独计费,具体参考:OpenSearch-行业算法版计费概述

  • 单个OpenSearch实例最多可创建5个性化底纹训练模型;

  • 如需人工干预个性化底纹的结果,可以添加黑白名单

API/SDK获取底纹结果

API调用可参考:热搜和底纹

Java SDK Demo:

import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
public class Hint {
    private static final String accesskey = "替换为accesskey";
    private static final String secret = "替换为secret";
    private static final String host = "替换为endpoint";//例如:http://opensearch-cn-hangzhou.aliyuncs.com
    private static final String appName = "替换为opensearch应用名";
    private static final String HOT_API_PATH = "/apps/{app_name}/actions/hint";
    public static void main(String[] args) {
        OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
        // Create OpenSearchClient
        OpenSearchClient client = new OpenSearchClient(openSearch);
        String requestPath = HOT_API_PATH.replaceAll(("\\{app_name\\}"), appName);
        Map<String, String> params = new HashMap<>();
        params.put("model_name", "your_model_name");//设置模型名称
        params.put("hit", "10");//设置查询的底纹词条数
        params.put("user_id", "123456");//设置user_id
        try {
            String response = client.call(requestPath, params, OpenSearchClient.METHOD_GET);
            System.out.println(JSON.toJSONString(response));
        } catch (OpenSearchClientException e) {
            e.printStackTrace();
        }
    }
}