Elasticsearch(简称ES)结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景

Elasticsearch(简称ES)结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。您将经历从环境配置、数据处理、在线查询测试的全过程,最终实现商品数据的智能检索。

 

 
  • 检索分析服务Elasticsearch版

    开源Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,是遵从Apache开源条款的一款开源产品,是当前主流的企业级搜索引擎。作为一款基于RESTful API的分布式服务,Elasticsearch可以快速地、近乎于准实时地存储、查询和分析超大数据集,通常被用来作为构建复杂查询特性和需求强大应用的基础引擎或技术。

    阿里云Elasticsearch是基于开源Elasticsearch构建的全托管Elasticsearch云服务,在100%兼容开源功能的同时,支持开箱即用、按需付费。不仅提供云上开箱即用的Elasticsearch、Logstash、Kibana、Beats在内的Elastic Stack生态组件,还与Elastic官方合作提供免费X-Pack(白金版高级特性)商业插件,集成了安全、SQL、机器学习、告警、监控等高级特性,被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。

  • AI语义搜索方案介绍

    搜索开发工作台介绍围绕智能搜索及检索增强生成RAG(Retrieval-Augmented Generation)场景,能够提供优质的组件化服务。阿里云ES提供高性能混合检索方案,结合搜索开发工作台AI模型服务,可以提供完整的AI语义搜索方案。方案如下:

    image

    • 数据写入流程:

      • 运用先进的文档切片模型实施语义层面的精细分割,转化成若干语义切片单元。

      • 借助自主研发的向量化模型,将这些切片转换成兼具稠密与稀疏特性的向量,此策略极大地增强了信息的表达能力及检索效率。

      • 向量在ES搜索引擎中被用来构建高效索引,为后续的信息检索与生成任务奠定坚实基础,体现了从复杂数据到结构化知识的有效转化与利用。

    • 数据查询流程:

      将需要查询的Query信息,通过向量化模型转换为稠密向量和稀疏向量,在阿里云ES中进行混合检索,召回TOP N文档内容。稀疏向量常用于表达关键词和词频信息,可与稠密向量、文本索引搭配进行混合检索,提升检索效果。

 
智能开放搜索 OpenSearch
检索分析服务 Elasticsearch版
 
  1. 环境准备:创建8.13及以上版本的ES实例,并登录Kibana控制台,为执行实验代码做准备。开通阿里云搜索开发工作台服务,并获取服务的调用地址host和服务的身份鉴权信息api_key,代码中需要使用这两个参数。

  2. 创建AI模型:在ES实例中分别创建doc_split推理模型(提供文档切片服务)、text_embedding推理模型(提供文本向量化服务)和sparse_embedding推理模型(提供文本稀疏向量化服务),并调试模型。

  3. 数据写入与处理:首先配置可以对数据进行预处理的ingest pipeline,然后创建基于向量的文档索引,最后将数据写入索引时带上配置好的pipeline_id,文本数据就可以通过定义的ingest pipeline自动生成文档切片的稠密向量与稀疏向量。

  4. 查询、测试数据:使用混合检索查询数据,对查询内容进行全文检索、稀疏向量检索和稠密向量检索。

 
  1. 在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》后,单击开始实操。

  2. 购买阿里云ES实例。

    1. 登录阿里云Elasticsearch控制台

    2. 在页面右上角,切换到阿里云ES实例所在地域,本实验以华东2(上海)为例。

      image

    3. 在左侧导航栏中,选择Elastic Stack云原生PaaS版本 > Elasticsearch实例,单击创建按钮。

      image

    4. Elasticsearch实例页面,单击创建按钮。

      说明

      如果尚未开通Elasticsearch服务,在进行产品购买时,点击立即购买后页面将会直观地展示一个立即开通按钮。该按钮的设计旨在为您提供便捷的一站式服务体验:只需轻点一下,系统即刻启动Elasticsearch服务的开通流程,并直接购买实例,无需跳转或二次确认,大大提升了操作效率与用户友好性。

           

      配置项

      示例

      说明

      商品类型

      按量付费

      您可以根据自己的实际需求选择合适的商品类型,本次示例实验中我们采用按量付费作为演示。

      地域和可用区

      华东2(上海)

      实例创建后,无法直接更改地域和可用区,请谨慎选择。

      可用区数量

      单可用区

      普通部署模式,适用于非关键任务型工作负载(默认)。

      网络类型

      专有网络

      推荐您使用专有网络,专有网络之间逻辑上彻底隔离,安全性更高,且支持弹性公网IP(EIP)、弹性网卡、IPv6等功能。

      专有网络

      选择合适的专有网络。

      如果您要创建专有网络,请单击下方的前往控制台创建。

      虚拟交换机

      选择合适的交换机。

      如果您要创建交换机,请单击下方的前往控制台创建。

      实例类型

      通用商业版

      阿里云ES提供通用商业版和内核增强版两种实例类型,不同类型的实例支持的ES版本和功能特性也不一样,可参考版本特性

      Elasticsearch版本

      8.13

      在原有版本的基础上新增开源特性,更多变化,请参见What’s new in 8.13

      场景初始化配置

      通用场景

      包含通用的优化配置项,适用于多种应用场景。

      实例规格

      数据节点:

      • CPU类型:Intel

      • 规格族:1:2计算型

      • 规格:2核4G

      • 存储类型:ESSD云盘 PL

      • 存储空间:20 GiB

      • 节点数量:3

      您可以根据自己的实际需求选择合适的实例规格,本次示例实验中我们采用了最低配置的规格作为演示。

      Kibana节点:

      • 规格族:1:2计算型

      • 规格:1核2G

      登录名

      elastic

      用来访问Elasticsearch和登录Kibana。

      登录密码

      自定义设置登录密码

      在后续连接Elasticsearch实例时,您需要输入登录名elastic和此处设置的密码。

      image

      image

      image

      image

  3. 登录ES实例的Kibana控制台,并进入执行代码的页面。

    1. 登录阿里云Elasticsearch控制台

    2. 在页面右上角,切换到阿里云ES实例所在地域,本实验以华东2(上海)为例。

      image

    3. 在左侧导航栏中,选择Elastic Stack云原生PaaS版本 > Elasticsearch实例。

      image

    4. Elasticsearch实例页面,需要等待10分钟左右,实例状态变为正常时单击目标实例ID。

      image

    5. 配置Kibana访问白名单。

      1. 进入ES实例后,在左侧导航栏中,选择配置与管理 > 可视化控制。

        image

      2. Kibana区域,单击修改配置。

        image

      3. 访问配置区域,单击Kibana公网访问白名单右侧的修改。

        image

      4. 修改Kibana公网访问白名单面板,单击default右侧的配置。

        image

      5. 修改IP白名单分组对话框中,在白名单内IP地址中添加本地设备的IP地址,单击确认,以便使用本地设备访问ES实例的Kibana。

        说明

        获取本地设备的IP地址:在本地设备的浏览器中访问www.cip.cc,或在本地设备中执行curl cip.cc

        image

        返回如下页面,您可看到Kibana公网访问白名单添加完成。

        image

    6. 访问配置区域,单击右上角image图标,返回上一页。

      image

    7. Kibana区域,单击公网入口。

      image

    8. 在Kibana登录页面,输入用户名和密码,单击登录。

      • 用户名:ES实例的默认用户为elastic。

      • 密码:用户的密码。elastic用户的密码在创建实例时设定,如果忘记可重置。

        说明

        重置密码的注意事项和操作步骤,请参见重置实例访问密码

        image

    9. 进入执行代码页面。

      1. 在Kibana欢迎页面,单击自己浏览。

        image

        在Kibana页面左上角,单击image图标打开导航栏,选择Management > 开发工具。

        image

      2. 在开发工具的控制台,就可以执行本实验的代码。

        image

  4. 开通搜索开发工作台服务。

    开通阿里云搜索开发工作台服务,并获取服务的调用地址host和服务的身份鉴权信息api_key。

    说明

    如果您的阿里云账号已开通搜索开发工作台服务,请跳过此步骤。

    1. 登录搜索开发工作台控制台

    2. 在页面右上角,切换到与阿里云Elasticsearch实例相同的地域,本实验以华东2(上海)为例,单击立即开通。

      f8b4adc34b661faca47bc4aaaba6e185

    3. 在开通搜索开发平台页面,单击立即开通。

      image

    4. 您尚未完成以下协议签署对话框中,单击签署并下单。

      image

    5. 获取搜索开发工作台服务的调用地址host。

      1. 在左侧导航栏中,单开API Keys。

        image

      2. API Keys页面,获取到公网API域名,即搜索开发工作台服务的调用地址host。

        说明

        使用服务的调用地址host是,无需添加http://。本实验以公网调用API域名为例。

        image

    6. 获取搜索开发工作台服务的身份鉴权信息api_key。

      1. API Keys页面,单击创建API Key。

        image

      2. 创建API Key对话框中,请您务必保存好API Key信息,然后勾选我已保存好API Key,单击确定。

        image

        返回如下页面,新创建的API Key默认处于已启用状态,可以直接使用。

        image

        说明

        更多相关信息,请参见开通服务获取服务接入地址管理API Key

 

创建AI模型

在ES实例中分别创建doc_split推理模型(提供文档切片服务)、text_embedding推理模型(提供文本向量化服务)和sparse_embedding推理模型(提供文本稀疏向量化服务),并调试模型。

说明

需在ES实例的Kibana控制台执行以下操作,以下代码中api_keyhost的值需替换为上一章节获取的实际值。

关于推理模型的更多信息,请参见阿里云Elasticsearch Inference API介绍

  1. 创建doc_split推理模型。

    1. 执行如下命令,注册搜索开发工作台文档切片服务(ops-document-split-001),创建doc_split推理模型。

      说明

      max_chunk_size用来设置切片的最大长度,默认值是300。由于本实验测试的文本较短,为了测试查询时的inner_hits参数,以上示例max_chunk_size设置了较小值。其他参数请参见阿里云Elasticsearch Inference API介绍

       
       
      PUT _inference/doc_split/os-doc-split-test
      {
        "service": "alibabacloud-ai-search",
        "service_settings": {
          "api_key": "OS-xxx(API KEY)",
          "service_id": "ops-document-split-001",
          "host" : "搜索开发API Keys公网API域名,去掉http://",
          "workspace" : "default"
        },
        "task_settings": {
          "document": {"content_type": "text"},
          "strategy": {"max_chunk_size": 20}
        }
      }

      image

  2. 创建text_embedding推理模型。

    1. 执行如下命令,注册搜索开发工作台文本向量化服务-001(ops-text-embedding-001),创建text_embedding推理模型。

     
     
    PUT _inference/text_embedding/os-embeddings-test
    {
      "service": "alibabacloud-ai-search",
      "service_settings": {
        "api_key": "OS-xxx(API KEY)",
        "service_id": "ops-text-embedding-001",
        "host" : "搜索开发API Keys公网API域名,去掉http://",
        "workspace" : "default"
      }
    }

    image

  3. 创建sparse_embedding推理模型。

    1. 执行如下命令,注册搜索开发工作台文本稀疏向量化服务(ops-text-sparse-embedding-001),创建sparse_embedding推理模型。

     
     
    PUT _inference/sparse_embedding/os-sparse-embeddings-test
    {
      "service": "alibabacloud-ai-search",
      "service_settings": {
        "api_key": "OS-xxx(API KEY)",
        "service_id": "ops-text-sparse-embedding-001",
        "host" : "搜索开发API Keys公网API域名,去掉http://",
        "workspace" : "default"
      }
    }

    image

  4. 调试模型。

    1. 在ES实例的Kibana控制台执行以下操作。

    2. 执行如下命令,调试doc_split推理模型。

     
     
    POST _inference/doc_split/os-doc-split-test
    {
      "input":["文档切片服务(ops-document-split-001):提供通用文本切片服务,支持基于文档段落、文本语义、指定规则,对HTML、Markdown、txt格式的结构化数据进行拆分,同时支持以富文本形式提取文档中的代码、图片以及表格。OpenSearch文本向量化服务-001(ops-text-embedding-001)提供多语言(40+)文本向量化服务,输入文本最大长度300,输出向量维度1536维。"]
    }

    image

    1. 执行如下命令,调试text_embedding推理模型。

     
     
    POST _inference/text_embedding/os-embeddings-test
    {
      "input":["科学技术是第一生产力", "elasticsearch产品文档"]
    }

    image

    1. 执行如下命令,调试sparse_embedding推理模型。

     
     
    POST _inference/sparse_embedding/os-sparse-embeddings-test
    {
      "input":["科学技术是第一生产力", "elasticsearch产品文档"]
    }
  5. image

     

     
 
 

数据写入与处理

数据写入与处理包括以下几个步骤:

  • 配置ingest pipeline:配置文档切片模型对商品描述进行语义切分,应用向量化模型生成文档片段的稠密与稀疏向量。

  • 创建索引:在ES中建立基于向量的文档索引。

  • 写入数据:将电商数据集导入索引作为搜索内容的基础。

  1. 在ES实例的Kibana控制台执行以下操作,配置ingest pipeline。

    1. pipeline包含对写入文档切片的过程。执行如下命令,将切片后的文档生成text embedding向量和sparse embedding向量,写入nested类型的子文档中。

       
       
      PUT _ingest/pipeline/os-pipeline-demo
      {
        "description": "This is an example of splitting, text-embedding and sparse-embedding fields use foreach",
        "processors": [
          {
            "document_splitting": {
              "model_id": "os-doc-split-test",
              "input_output": [
                {
                  "input_field": "content",
                  "output_field": "chunk",
                  "extend_output_field": "chunk_ext"
                }
              ]
            }
          },
          {
            "foreach": {
              "field": "chunk",
              "processor": {
                "text_embedding": {
                  "model_id": "os-embeddings-test",
                  "input_output": [
                    {
                      "input_field": "_ingest._value.content",
                      "output_field": "_ingest._value.embedding"
                    }
                  ]
                }
              }
            }
          },
          {
            "foreach": {
              "field": "chunk",
              "processor": {
                "text_embedding": {
                  "model_id": "os-sparse-embeddings-test",
                  "input_output": [
                    {
                      "input_field": "_ingest._value.content",
                      "output_field": "_ingest._value.sparse_embedding"
                    }
                  ]
                }
              }
            }
          }
        ]
      }

      image

    2. ingest pipeline创建成功后,执行如下命令,可以通过simulate接口(仅用于模拟调试,不会实际创建索引),测试pipeline处理的效果。

       
       
      POST _ingest/pipeline/os-pipeline-demo/_simulate
      {
        "docs": [
          {
            "_index": "testindex",
            "_id": "1",
            "_source":{
              "content": "现代科技的发展推动了人工智能的极速进步。AI在各个领域展现出巨大的潜力,从医疗到金融,AI都在发挥着重要的作用,为人类的生活带来了翻天覆地的变化。"
            }
          }
          ]
      }

      image

  2. 创建索引。

    1. 执行以下代码,在ES中建立基于向量的文档索引。

     
     
    PUT os_demo_index
    {
      "mappings": {
        "properties": {
            "content": {
              "type": "text"
            },
            "chunk":{
              "type":"nested",
              "properties": {
                "content":{
                  "type":"text"
                },
                "embedding":{
                  "type": "dense_vector",
                  "dims": 1536
                },
                "sparse_embedding":{
                  "type": "sparse_vector"
                }
              }
            }
          }
      }
    }

    image

  3. 写入数据。

    本实验选取huggingface中EcomRetrieval的部分电商数据作为实验数据集,如因网络问题不能下载,请单击ecom_test.zip下载数据。本实验只导入100条左右的数据为例。

    1. 分别执行如下命令,将数据写入索引作为搜索内容基础,写入数据时带上配置好的pipeline_id,文本数据就可以通过pipeline进行自动的embedding。

      说明

      查看实验数据集的详细内容,请单击ecom_test.zip下载。数据集中包含两个文件:

      • corpus:包含需要写入索引的电商数据。

      • query:文件里的内容为搜索电商数据的部分商品搜索标题。

       
       
      POST os_demo_index/_bulk?pipeline=os-pipeline-demo
      {"index":{}}
      {"content":".多乐士Dulux致悦通用无添加底漆墙面漆乳胶漆油漆涂料A749白色5L"}
      {"index":{}}
      {"content":".亚克力透明管件  透明弯头三通管帽直接 16/20/25/32mm纯透明管"}
      {"index":{}}
      {"content":"0-6个月婴幼儿加厚保暖内衣男女宝宝对襟加绒长袖上衣3裤子套装"}
      {"index":{}}
      {"content":"1000442956A燃油滤清器81334柴芯格潍柴原厂正品适配解放陕汽欧曼"}
      {"index":{}}
      {"content":"100色刺绣diy绣线套装支线新手入门欧式立体棉线绣花线十字绣绣线"}
      {"index":{}}
      {"content":"100只儿童医用外科口罩一次性医疗三层宝宝小孩专用防病毒女男孩"}
      {"index":{}}
      {"content":"10包装免洗发膜倒膜直发卷头发护理顺滑修复受损毛躁护发素男士男"}
      {"index":{}}
      {"content":"120cm宽医用一次性床单加厚无纺布防水防油美容院中单按摩床垫单"}
      {"index":{}}
      {"content":"1313羊绒+羊毛气质简约短款针织衫 2021女冬高领收腰显高套头毛衣"}
      {"index":{}}
      {"content":"15款五整型皮卡前雾灯框前杠灯罩防雾灯框架 原厂庆铃皮卡配件"}
      {"index":{}}
      {"content":"16 17 18款兰德酷路泽灯罩面罩灯面适用于丰田陆地巡洋舰陆巡前灯"}
      {"index":{}}
      {"content":"1斤特价广西新鲜野生木竹子果黄牙果酸桐子岭南山竹桔子山枇杷酸"}
      {"index":{}}
      {"content":"2011-2021 2022年熊猫银币纪念币 30克/1盎司 熊猫金银币 带证书"}
      {"index":{}}
      {"content":"2011麦当劳国庆POPOBE熊暴力熊国庆熊中国红省份 现货"}
      {"index":{}}
      {"content":"2019新款包管护角下水道管煤气管道装饰明装遮挡扣板包柱子厕所"}
      {"index":{}}
      {"content":"2020秋季新款大码女装200斤胖mm三色花边领百搭毛衣宽松针织衫"}
      {"index":{}}
      {"content":"2021.新款 东方o雨虹亚士外墙漆喷涂外墙乳胶漆哑光面漆可调色"}
      {"index":{}}
      {"content":"20212021Um型密封条金胶包边嵌条机械钣橡皮铁钢V板不锈钢桥架封"}
      {"index":{}}
      {"content":"2021海洋许diy材料包星星许愿瓶空瓶玻璃瓶木塞水晶q宝宝泡大珠漂"}
      {"index":{}}
      {"content":"2021年熊猫币30克纯银纪念币国宝熊猫银币收藏金总原装盒保真现货"}
      {"index":{}}
      {"content":"2021冬季新款韩风chic上衣宽松慵懒风软糯糯彩色星星套头针织毛衣"}
      {"index":{}}
      {"content":"2021新款可爱卡通日韩小熊PU皮革刺绣零钱包挂饰迷你拉链收纳包潮"}
      {"index":{}}
      {"content":"2021年早秋设计感软糯温柔复古洋气V领珍珠扣针织开衫毛衣女外穿"}
      {"index":{}}
      {"content":"2021年新款爆款时尚洋气韩系温柔设计感慵懒风毛衣开衫外套女冬季"}
      {"index":{}}
      {"content":"2021新品新会小柑胎特级果场直批正宗农家生晒树摘带蒂小青柑胎仔"}
      {"index":{}}
      {"content":"2021新款女装冬季韩国简约百搭撞色条纹修身半高领长袖打底针织衫"}
      {"index":{}}
      {"content":"2021秋冬堆堆领洋气长袖羊毛针织衫高领内搭修身弹力打底衫毛衣女"}
      {"index":{}}
      {"content":"2021秋冬新款女装韩版气质温柔风设计感假两件套头大翻领长袖毛衣"}
      {"index":{}}
      {"content":"2022合材镜面抛光T条背景墙装饰嵌线条木门吊顶镶 条石Z金板材镶0"}
      {"index":{}}
      {"content":"21款东风启辰大专用改装件专用外饰前杠车标贴纸专用中网装饰"}
      {"index":{}}
      {"content":"22cm,316不锈钢平底小煎锅"}
      {"index":{}}
      {"content":"23厘米贴钻暴力熊diy创意玩偶摆件手工制作粘钻小熊礼品送男女生"}
      {"index":{}}
      {"content":"250NK/250SR 机油滤芯 CFMOTO 摩托车保养 春风"}
      {"index":{}}
      {"content":"2件6折 丹麦liewood宝宝儿童有机棉睡衣家居服套装睡衣睡裤睡裙66"}
      {"index":{}}
      {"content":"304不锈钢地沟盖板厨房排水沟盖板格栅201明沟雨水篦子下水道井盖"}
      {"index":{}}
      {"content":"304不锈钢单柄厚底牛奶锅辅食烘焙料理锅家用不粘汤锅电磁炉通用"}
      {"index":{}}
      {"content":"304不锈钢垃圾桶盖子台面嵌入式装饰盖翻转摇盖厨房卫生间方圆。"}
      {"index":{}}
      {"content":"304不锈钢日式雪平锅家用奶锅煎煮一体泡面锅煮面不粘燃气灶适用"}
      {"index":{}}
      {"content":"304食品级不锈钢洗菜盆盖板纯手工厨房水槽洗碗水池盖板单槽盖板"}
      {"index":{}}
      {"content":"345810MM厚浅蓝色亚克力板定制加工淡天蓝色透明有机玻璃板材定做"}
      {"index":{}}
      {"content":"3cm太空铝平条地板门口平扣一字型万能掩盖缝隙收边条"}
      {"index":{}}
      {"content":"3代骑行台t300 智能变阻直驱式室内自行车功率训练台"}
      {"index":{}}
      {"content":"5.0真无线蓝牙耳机故障不良研究品好坏不包适合DIY配件充电板"}
      {"index":{}}
      {"content":"50mm封边条板PVC收口条5公门免漆宽分板生态Q板配套衣柜加宽封边"}
      {"index":{}}
      {"content":"5寸 12厘米高贴钻暴力熊么么熊镶钻熊钥匙扣包挂扣手办玩偶粘钻熊"}
      {"index":{}}
      {"content":"5月新品现货亚克力夹"}
      {"index":{}}
      {"content":"700x700不锈钢井盖排水沟地沟下水道盖板方圆形隐形雨水篦子格栅"}
      {"index":{}}
      {"content":"80*180粉色防水防油一次性床单美容院按摩床垫单中单无菌非透气"}
      {"index":{}}
      {"content":"80断桥铝门窗扇阳台框封璃平铝合金定制钢化S玻齐落地系统窗户"}
      {"index":{}}
      {"content":"9.9元抢10片沁润水漾保湿面膜H2O冰川水保湿面膜补水面膜"}
      {"index":{}}
      {"content":"ACEFIT男士保暖内衣男加绒中厚修身无痕秋衣秋裤套装棉毛衫"}
      {"index":{}}
      {"content":"AIRHOOD龙飞凤舞 日系卡通小熊拼色毛衣男宽松bf情侣慵懒风针织衫"}
      {"index":{}}
      {"content":"ARROW箭牌马桶盖 盖板通用老式坐便器AB1218/1241/1292/1226/1242"}
      {"index":{}}
      {"content":"Bear/小熊 DDZ-B06R1"}
      {"index":{}}
      {"content":"Bylure法国锅具组合套装麦饭石不粘锅炒锅奶锅平底锅煎锅汤锅炖锅"}
      {"index":{}}
      {"content":"CDG鉴定川久保玲羊毛开衫衣鉴定三宅一生几何468格包真假"}
      {"index":{}}
      {"content":"CHICBOUTIQUE原创设计亚克力金桔树创意装饰节日礼品圣诞树"}
      {"index":{}}
      {"content":"COLMO CDF15G05嵌入式洗碗机15套全自动家用大容量热风烘干消毒"}
      {"index":{}}
      {"content":"COLMO洗碗机嵌入式15套全自动家用大容量热风烘干双变频除菌B3"}
      {"index":{}}
      {"content":"Canbo/康宝 XWJ8-QC1洗碗机家用嵌入式全自动除菌洗碗一体机厨房"}
      {"index":{}}
      {"content":"Coach鉴定真假蔻驰pinko验货MK轻奢toryburch山茶花托特贝壳tabby"}
      {"index":{}}
      {"content":"DIY手指画儿童亲子圣诞贺卡材料包套装圣诞节贺卡6张入送信封印泥"}
      {"index":{}}
      {"content":"Dior迪奥贝壳鞋支持app鉴定"}
      {"index":{}}
      {"content":"Dreamtimes k2冰膜 男士面膜清洁控油补水保湿收缩毛孔(10片装)"}
      {"index":{}}
      {"content":"ECO Forest牧光森林全阶段鼠粮900g仓鼠金丝熊主粮营养食物饲料"}
      {"index":{}}
      {"content":"EMS微电流智能脚垫脚足底按摩垫理疗足疗机穴位足部按摩器美腿器"}
      {"index":{}}
      {"content":"E格静音85平开门断桥铝合金定制卧室内阳台客厅别墅防盗系统门窗"}
      {"index":{}}
      {"content":"FDB 日本新禧马臀皮拉链卡包手工真皮大容量男士钱包轻奢精致高档"}
      {"index":{}}
      {"content":"FITURE魔镜尊享版家庭智能健身镜mirror健身镜AI瑜伽室内运动器材"}
      {"index":{}}
      {"content":"HEEL成人儿童感冒药小儿流鼻涕鼻塞口服含片德国进口"}
      {"index":{}}
      {"content":"HOTCHILLYS红辣椒10级男冬户外运动抓绒圆领保暖透气功能内衣套装"}
      {"index":{}}
      {"content":"Haglofs火柴棍户外运动男款含羊毛保暖舒适修身内衣603097 欧版"}
      {"index":{}}
      {"content":"Haier/海尔 嵌入式10套洗碗机V10家用全自动独立式智能消毒除菌"}
      {"index":{}}
      {"content":"Helikon赫利肯L2半拉链秋冬保暖内衣裤套装战术男植绒透气打底衫"}
      {"index":{}}
      {"content":"JACE泰国原装进口七区按摩大颗粒天然乳胶床垫1.8m床7.5CM厚定制"}
      {"index":{}}
      {"content":"JMC江铃顺达凯运凯锐全顺特顺宝典宝威原装原厂机油滤清器机油格"}
      {"index":{}}
      {"content":"KN空滤进气滤芯风格 十代思域新飞度GK5杰德CRV雅阁XRV冠道奥德赛"}
      {"index":{}}
      {"content":"LANGTU朗固品牌304不锈钢滑撑重型厚款下悬窗四连杆下悬窗铰链"}
      {"index":{}}
      {"content":"LEADERS/丽得姿2021新款美蒂优氨基酸补水保湿面膜抗衰熬夜面膜贴"}
      {"index":{}}
      {"content":"LUXIAOJUN吕小军家商用多功能综合训练器大小飞鸟卧推深蹲龙门架"}
      {"index":{}}
      {"content":"Making space北欧单人沙发椅家用客厅休闲躺椅简约网红不锈钢单椅"}
      {"index":{}}
      {"content":"Midea/美的 RX10Pro洗碗机嵌入式家用智能全自动13+1套热风强烘干"}
      {"index":{}}
      {"content":"Midea/美的 V5美的官方V5洗碗机智能家用8套刷碗消毒热风烘干一体"}
      {"index":{}}
      {"content":"Olimp欧力姆KO氮泵305g训练欧利姆N1 C4眼镜蛇氮泵"}
      {"index":{}}
      {"content":"PAE麦饭石平底锅不粘锅家用煎蛋牛排专用电磁炉燃气灶适用小煎锅"}
      {"index":{}}
      {"content":"PAOPOY1羽衣甘蓝焕亮泥膜女男去角质深层清洁毛孔黑头控油亮肤"}
      {"index":{}}
      {"content":"PERSELY/观梨小白胖涂抹面膜 修护压力肌 锁水紧致密集修护抗初老"}
      {"index":{}}
      {"content":"PVC塑料石膏天花板吊顶工艺槽分隔条几字条U型槽造型收边条凹槽"}
      {"index":{}}
      {"content":"RAGR羊绒开衫21秋冬新款V领拼色百搭毛衣外穿撞色宽松显瘦羊毛外"}
      {"index":{}}
      {"content":"RELLET 医用冷敷贴 抗敏感急救修护玻尿酸面膜 99/盒 /5片装 正品"}
      {"index":{}}
      {"content":"RNW发膜修复干枯护发素女正品顺滑免蒸水疗改善毛躁柔顺香味持久"}
      {"index":{}}
      {"content":"RX300大灯罩 03-08款雷克萨斯rx330前大灯透明灯罩 前灯壳 灯面罩"}
      {"index":{}}
      {"content":"SHINOYA禧诺亚鱿圣鱿鱼路亚八编PE线五彩大力马鱼线大物马口海钓"}
      {"index":{}}
      {"content":"SHUA舒华智能水阻划船机家用折叠室内运动训练支持HUAWEI HiLink"}
      {"index":{}}
      {"content":"SIEMENS/西门子 SJ636X04JC SJ636X03JC00JC洗碗机13套嵌入式除菌"}
      {"index":{}}
      {"content":"SKG颈椎按摩仪4098颈部按摩器多功能脖子振动电脉冲舒缓热敷送礼"}
      {"index":{}}
      {"content":"SMC复合树脂不锈钢缝隙线性排水沟U型沟槽格栅盖板排水沟下水道"}
      {"index":{}}
      {"content":"SURPINE/松野湃保暖速干排汗男滑雪秋冬户外登山徒步运动打底内衣"}
      {"index":{}}
      {"content":"Scubapro Hydros Pro 潜水BCD背飞深潜浮力背心男女专业水肺装备"}
      {"index":{}}
      {"content":"TPE指压板韩国趾压板超痛升级版脚底按摩垫脚垫足底按摩垫"}
    2.  
    3. image

       

 
 

查询测试数据

  • 全文检索:对query进行全文检索。

  • Knn查询:将query转化为稠密向量进行稠密向量检索。

  • RRF查询:将query转化为稠密向量及稀疏向量,并进行全文检索、稠密向量检索、稀疏向量检索,通过融合排序算法召回Top 10的内容。

说明

content、model_text中的内容,可以替换为您想要查询的商品名称,商品名称可以参考实验数据集query文件中的内容。例如:大落地窗、墙面底漆、按摩垫、德绒内衣男等。

  1. 执行如下命令,进行全文检索。

     
     
    GET os_demo_index/_search
    {
      "_source": "content", 
      "query": {
        "match": {
          "content": "大落地窗"
        }
      }
    }

    image

  2. 执行如下命令,进行knn查询(稠密向量检索)。

     
     
    GET os_demo_index/_search
    {
      "_source": "content", 
      "knn" : {
        "field": "chunk.embedding",
        "query_vector_builder": {
          "text_embedding": {
            "model_id": "os-embeddings-test",
            "model_text": """
            大落地窗
            """
          }
        },
        "k": 10,
        "num_candidates": 100
      }
    }

    image

  3. 执行如下命令时带上inner hint,可返回knn查询命中的chunk。

     
     
    GET os_demo_index/_search
    {
      "_source": "content", 
      "knn" : {
        "field": "chunk.embedding",
        "query_vector_builder": {
          "text_embedding": {
            "model_id": "os-embeddings-test",
            "model_text": """
            大落地窗
            """
          }
        },
        "k": 10,
        "num_candidates": 100,
        "inner_hits":{
          "_source": ["chunk.content","chunk.meta"],
          "size":2
        }
      }
    }

    image

  4. 执行如下命令,进行RRF查询(混合检索)。

    使用RRF查询,并对全文检索、稀疏向量检索、稠密向量检索进行混合排序。

     
     
    GET os_demo_index/_search
    {
      "_source": "content", 
      "sub_searches":[
        {
          "query":{
            "match": {
              "content": "大落地窗"
            }
          }
        },
        {
          "query":{
            "nested": {
              "path": "chunk",
              "query": {
                "text_expansion":{
                  "chunk.sparse_embedding":{
                    "model_id":"os-sparse-embeddings-test",
                    "model_text":"大落地窗"
                  }
                }
              }
            }
          }
        }
      ],
      "knn" : {
        "field": "chunk.embedding",
        "query_vector_builder": {
          "text_embedding": {
            "model_id": "os-embeddings-test",
            "model_text": """
            大落地窗
            """
          }
        },
        "k": 10,
        "num_candidates": 100
      },
      "rank":{
        "rrf":{
        }
      }
    }

    image

 
 
 

实验总结

通过体验本实验,您将全面掌握AI搜索系统从搭建到优化的完整流程,体验AI技术如何提升搜索的准确性和用户体验。此实验不仅可以加深对AI搜索技术原理的理解,还提供了将理论知识应用于实际场景的机会,为未来在各种业务环境中实施智能化搜索解决方案奠定坚实基础。

 
   
 

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。

    • 删除Elasticsearch实例。

      1. 登录阿里云Elasticsearch控制台

      2. 在页面右上角,切换到阿里云ES实例所在地域,本实验以华东2(上海)为例。

        image

      3. 在左侧导航栏中,选择Elastic Stack云原生PaaS版本 > Elasticsearch实例,单击目标实例ID右侧image按钮,选择释放实例。

        image

      4. 在释放实例对话框中勾选无需等待,立即清除,单击继续。

        image

    • 删除API KEY。

      1. 登录搜索开发工作台控制台

      2. 在左侧导航栏中,单开API Keys。

        image

      3. API Keys页面,单击目标API Key右侧的禁用按钮,并在弹出的操作提示对话框中单击确定。

        image

        image

      4. 当目标API Key状态变为已禁用,单击右侧删除按钮,在弹出的删除提示对话框中单击确定。

        image

        image

    • 删除VPC和交换机。

      说明

      如果在部署Elasticsearch服务时没有选择新建VPC和交换机(例如,使用了现有的VPC基础设施),那么您可以直接跳过与新建VPC和交换机相关的设置步骤。

      1. 登录专有网络管理控制台

      2. 在左侧导航栏中,单击交换机。

        image

      3. 单击交换机右侧的删除按钮。

        image

      4. 在弹出的删除交换机对话框中,单击确定。

        image

      5. 在左侧导航栏中,单击专有网络。

        image

      6. 单击VPC右侧删除按钮。

        image

      7. 在删除专有网络对话框中,单击确定。

        image

    • 删除相关资源后,单击结束实操。在结束实操对话框中,单击确定。

      image

  • 在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image

 
 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
posted @ 2025-10-15 11:31  aiplus  阅读(32)  评论(0)    收藏  举报
悬浮按钮示例