当前位置: 首页 > article >正文

用OpenSearch实现电商语义搜索

想象一下一位顾客搜索适合团队通话的经济型无线耳机。传统的关键词搜索返回零结果因为您的商品标题中并不包含所有这些确切词汇。但借助由生成式 AI 嵌入模型驱动的语义搜索OpenSearch 能够理解用户意图——并将您最好的带降噪功能的蓝牙耳机置顶展示。在本指南中我们将在 OpenSearch 2.13 基础上构建一个完整的神经搜索流程摄取电商商品数据使用预训练的句子转换模型在摄取过程中自动生成向量嵌入并提供具有语义感知能力的搜索结果——无需任何外部服务或付费 API。1、为什么电商需要神经搜索在开始编写代码之前让我们明确我们要解决什么问题以及业务收益是什么。减少零结果搜索遇到死胡同的购物者会离开。语义搜索匹配同义词、改写和意图——大幅减少无结果页面。低于10毫秒的查询延迟OpenSearch 的 HNSW 图索引支持近似最近邻搜索以关键词搜索的速度提供相似性结果。更好的推荐通过向量距离计算商品相似性驱动您可能也喜欢功能——使用相同索引无需额外基础设施。100%开源且免费没有 OpenAI API 费用没有供应商锁定。嵌入模型在 Apache 2.0 许可下运行在您的 OpenSearch 节点内部。2、传统搜索 vs 神经搜索特性传统关键词搜索神经语义搜索匹配方式精确词汇匹配语义相似性同义词支持需要手动配置自动理解查询理解字面匹配理解意图结果相关性依赖关键词密度基于语义相关性3、架构设计本文档包含架构图展示了数据流从商品数据摄取到向量生成再到语义搜索查询的完整流程。4、分步实现指南4.1 在节点上启用机器学习默认情况下OpenSearch 将 ML 推理限制在专用 ML 节点上。在单节点或开发环境中告诉集群任何节点都可以运行模型PUT /_cluster/settings { persistent: { plugins.ml_commons.only_run_on_ml_node: false, plugins.ml_commons.native_memory_threshold: 99, plugins.ml_commons.model_auto_redeploy.enable: true, plugins.ml_commons.model_auto_redeploy.lifetime_retry_times: 3 } }4.2 注册嵌入模型OpenSearch 的 ML Commons 维护一个经过预测试的 TorchScript 兼容模型注册表。我们使用 msmarco-distilbert-base-tas-b —— 一个768维的模型针对问答段落检索进行了优化非常适合商品搜索。POST /_plugins/_ml/models/_register { name: huggingface/sentence-transformers/msmarco-distilbert-base-tas-b, version: 1.0.2, model_format: TORCH_SCRIPT } // 返回 // { task_id: abc123, status: CREATED }4.3 部署模型POST /_plugins/_ml/models/your_model_id/_deploy // 轮询返回的 task_id 直到状态变为 COMPLETED GET /_plugins/_ml/tasks/deploy_task_id // 确认部署状态 GET /_plugins/_ml/models/your_model_id // 查找model_state: DEPLOYED4.4 创建摄取管道摄取管道是实现无缝批量摄取的魔法所在。流经它的每个文档都将自动将其商品描述字段转换为768维向量存储在 product_vector 字段中。PUT /_ingest/pipeline/ecommerce-neural-pipeline { description: Auto-embed product descriptions for semantic search, processors: [ { text_embedding: { model_id: your_model_id, field_map: { product_description: product_vector // ↑ 文档中的源字段 → ↑ 新的向量字段 } } } ] }4.5 创建电商索引PUT /ecommerce-products { settings: { index.knn: true, // 在此索引上启用 k-NN default_pipeline: ecommerce-neural-pipeline, number_of_shards: 1, number_of_replicas: 0 }, mappings: { properties: { product_id: { type: keyword }, product_name: { type: text }, product_description: { type: text }, // 嵌入的源字段 brand: { type: keyword }, category: { type: keyword }, price: { type: float }, in_stock: { type: boolean }, product_vector: { // 由管道自动填充 type: knn_vector, dimension: 768, // 必须与模型输出匹配 method: { name: hnsw, space_type: cosinesimil, engine: nmslib } } } } }4.6 准备和摄取商品数据将商品数据准备为 OpenSearch Bulk API 格式的 JSON 文件{index:{_index:ecommerce-products}} { product_id: SKU-001, product_name: Plantronics HW251N SupraPlus 宽带耳机, product_description: 专业降噪耳机适用于办公室和呼叫中心。宽带音频提供清晰通话。QD 快速断开。单耳头戴式设计。, brand: Plantronics, category: 耳机, price: 89.99, in_stock: true } {index:{_index:ecommerce-products}} { product_id: SKU-002, product_name: Jabra Evolve2 85 无线耳机, product_description: 高端无线耳机配备主动降噪功能。37小时电池续航。非常适合远程工作、视频会议和专注时段。, brand: Jabra, category: 耳机, price: 379.00, in_stock: true }通过 curl 摄取数据——管道会自动为每个文档执行# 设置 k-NN 本地库路径WSL2 环境需要 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:~/softwares/opensearch-2.13.0/plugins/opensearch-knn/lib # 批量摄取 curl -XPOST -u admin:Opensearch2026 -k \ https://localhost:9200/_bulk \ --data-binary products.json \ -H Content-Type: application/json # 每行应显示 result:created, status:2015、执行语义搜索数据摄取完成后您可以使用神经搜索查询POST /ecommerce-products/_search { query: { neural: { product_vector: { query_text: 适合团队通话的经济型无线耳机, model_id: your_model_id, k: 10 } } } }即使查询中没有精确匹配的商品标题系统也会返回语义相似的结果如带降噪的蓝牙耳机。6、常见问题与解决方案6.1 内存不足错误如果模型部署失败增加 OpenSearch 的内存分配# 在 jvm.options 文件中 -Xms4g -Xmx4g6.2 模型加载失败确保所有 ML Commons 插件已正确安装# 检查已安装插件 ./opensearch-plugin list6.3 向量维度不匹配确保模型输出维度与索引映射中的 dimension 设置匹配。7、结束语通过将 OpenSearch 的 k-NN 功能与开源嵌入模型结合您可以构建企业级的语义搜索解决方案而无需昂贵的 API 费用或外部依赖。这种方法不仅提高了搜索相关性还为个性化推荐和智能商品发现奠定了基础。原文链接用OpenSearch实现电商语义搜索 - 汇智网

相关文章:

用OpenSearch实现电商语义搜索

想象一下,一位顾客搜索"适合团队通话的经济型无线耳机"。传统的关键词搜索返回零结果,因为您的商品标题中并不包含所有这些确切词汇。但借助由生成式 AI 嵌入模型驱动的语义搜索,OpenSearch 能够理解用户意图——并将您最好的带降噪…...

用Claude Agent SDK构建CLI工具

我已经向我的团队说了几个月,Claude Code包装器将成为2026年的Cursor。在花了大量时间深入研究Claude Agent SDK后,是的,在像其他人一样仔细研究了泄露的源代码之后,我比以往任何时候都更加确信。转变是真实的:不再是来…...

Audio Slicer音频分割工具:用智能静音检测告别手动剪辑烦恼

Audio Slicer音频分割工具:用智能静音检测告别手动剪辑烦恼 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 你是否曾为处理长音频文件而烦恼…...

SpringMVC 请求保姆级教程:路径映射、参数传递、JSON 交互、日期处理一网打尽(Spring系列12)

摘要:SpringMVC 作为 Java Web 开发中最主流的 MVC 框架,核心职责就是接收请求、处理数据、响应结果,这也是 SpringMVC 学习的重中之重。本文将从环境搭建、请求映射、参数传递(普通 / POJO / 数组 / 集合 / JSON / 日期&#xff…...

AI原生软件技术债爆发前夜:92%的GenAI项目在V1.5版本后陷入交付瘫痪,你中招了吗?

第一章:AI原生软件技术债的本质与临界征兆 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的技术债并非传统工程债务的简单延伸,而是由模型-代码耦合失衡、数据契约隐式化、推理路径不可观测等结构性缺陷共同催生的“认知性负债”。当开发团队…...

AI agent开发笔记

AI模型强大程度:google CC > Microsoft copilot 1.在该路径下添加,AI生成规则文档:copilot-instructions.md...

LibreDWG:免费开源的DWG文件转换终极解决方案

LibreDWG:免费开源的DWG文件转换终极解决方案 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg 你是否经常遇到CAD设计文件格式不兼容的问题&…...

C++一维数组完全指南

一、什么是一维数组?用来一次性存储多个相同类型的数据内存中连续存放有统一的名字,用 ** 下标(索引)** 区分每个元素下标从 0 开始(非常重要)二、定义与初始化(四种常用方式)// 1. …...

BabelDOC终极指南:如何在企业环境中构建离线文档翻译解决方案

BabelDOC终极指南:如何在企业环境中构建离线文档翻译解决方案 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC是一款专业的企业级文档翻译工具,专注于PDF科学论…...

#50_基尔霍夫两大定律

50_基尔霍夫两大定律 50_基尔霍夫两大定律0. 引言0.1 基尔霍夫定律的历史背景0.2 基尔霍夫定律在电路分析中的地位0.3 两大定律的适用条件1. 基本概念1.1 电路的基本术语a. 支路b. 节点c. 回路d. 网孔1.2 电流的参考方向1.3 电压的参考极性2. 基尔霍夫电流定律(KCL&…...

2025年代码托管平台深度评测:Gitee如何领跑DevOps时代

在数字化转型加速的2025年,代码托管平台已成为软件开发的基础设施。随着DevOps理念的深度渗透和CI/CD实践的广泛普及,开发者对代码托管平台的需求已经从简单的版本控制升级为全生命周期管理。在这一背景下,Gitee凭借其本地化优势和创新功能设…...

ISE 14.7在Win10虚拟机里卡死闪退?一个输入法设置帮你搞定(附完整安装避坑指南)

ISE 14.7虚拟机环境配置全攻略:从输入法陷阱到FPGA开发实战 刚接触FPGA开发的新手们,是否曾在虚拟机里安装ISE时遭遇过输入项目名称就闪退的崩溃瞬间?这个问题困扰过无数开发者,而解决方案往往藏在不显眼的系统设置里。本文将带你…...

ArduPilot SITL不止能飞Copter:手把手教你用同一套环境玩转无人机、固定翼和无人车仿真

ArduPilot SITL全平台仿真指南:从无人机到无人车的无缝切换 当你第一次成功运行ArduPilot的多旋翼无人机仿真时,那种兴奋感可能还记忆犹新。但你知道吗?你刚刚搭建的这套Ubuntu 22.04环境,其实是一把能打开整个无人系统世界的万能…...

无人机多模态火灾图像识别 多光谱野火识别 智慧林业火灾识别 火灾识别图像数据集 多模态数据集 可见光+红外图像对其数据集第10652期

摘要 该系列均采用无人机航拍采集的多光谱野火同步对比影像。本数据集为完整版 3 中的单次燃烧场景子集,专门面向火灾检测、语义分割等计算机视觉任务构建。数据集包含622 组标注为“有火”的图像四元组,以及 116 组标注为“无火”的图像四元组。其中无火…...

理想汽车又孵化一家具身公司......

点击下方卡片,关注“自动驾驶之心”公众号戳我-> 领取自动驾驶近30个方向学习路线编辑 | 自动驾驶之心>>自动驾驶前沿信息获取→自动驾驶之心知识星球据雷峰网《新智驾》报道,理想汽车前AI首席科学家陈伟联合理想汽车前产品线总裁张骁创办的公司…...

二次元游戏模组管理革命:为什么你需要一个统一的启动器平台?

二次元游戏模组管理革命:为什么你需要一个统一的启动器平台? 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾为管理多个二次元游戏的模组而头疼&…...

DVWA文件上传漏洞通关实录:从Low到High,手把手教你三种绕过姿势(附Burp Suite实战)

DVWA文件上传漏洞实战指南:从基础绕过到高级技巧 在Web安全领域,文件上传漏洞一直是最常见也最具破坏力的漏洞类型之一。DVWA(Damn Vulnerable Web Application)作为经典的漏洞练习平台,其文件上传模块设置了从低到高三…...

创新实训个人工作-初步搭建(二)

一、思考在完成 AI 问答页的基础搭建后,我开始思考:如果这个页面真的面向用户使用,它应该像什么?我觉得他的回答必须要更加专业,可以在生活中可以真实可用。所以后续打磨,我主要围绕两条线展开:…...

glogg终极指南:如何通过智能架构设计实现高性能日志分析

glogg终极指南:如何通过智能架构设计实现高性能日志分析 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg glogg是一款专为开发者和系统管理员设计的跨平台日志查看器,它巧妙地将grep的…...

LS-WVL系统安装全攻略:从修复模式到中文配置一步到位

LS-WVL系统安装全攻略:从修复模式到中文配置一步到位 当你第一次拿到LS-WVL这台NAS设备时,可能会被它略显复杂的安装流程难住。别担心,这篇指南将带你从零开始,一步步完成从系统安装到中文配置的全过程。不同于市面上那些泛泛而谈…...

Janus-Pro-7B部署案例:NVIDIA T4显卡上稳定运行的7B多模态方案

Janus-Pro-7B部署案例:NVIDIA T4显卡上稳定运行的7B多模态方案 1. 多模态AI的新选择:Janus-Pro-7B 在AI技术快速发展的今天,多模态模型正成为新的热点。传统的AI模型往往只能处理单一类型的数据,要么是文字,要么是图…...

告别Office!8个理由让你立即尝试这款在线PPT制作工具

告别Office!8个理由让你立即尝试这款在线PPT制作工具 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for…...

【CISCN 2024 AWDP】从源码泄露到WAF绕过:实战剖析三道典型Web赛题解题思路

1. 源码泄露审计:从www.zip到逻辑漏洞挖掘 在CTF比赛中,源码泄露往往是最容易被忽视却最具破坏力的漏洞之一。去年参加CISCN时,我就遇到一道名为"粗心的程序员"的题目,典型源码泄露案例让我记忆犹新。题目页面看似普通&…...

AIDE 实战指南:从安装到入侵检测的完整流程

1. AIDE入门:为什么你需要文件完整性监控 第一次听说AIDE这个工具时,我正经历着职业生涯中最尴尬的安全事故。某天凌晨,服务器突然开始疯狂发送垃圾邮件,排查了半天才发现是某个关键系统文件被悄悄篡改了。这件事让我意识到&#…...

千帆竞发:126颗卫星升空背后的全球卫星互联网竞速

2026年4月7日21时32分,长征八号运载火箭在海南商业航天发射场拔地而起,以“一箭十八星”的方式将千帆星座第七批18颗组网卫星送入预定轨道。发射取得圆满成功。此次发射后,千帆星座在轨卫星总数达到126颗,标志着我国自主可控的低轨…...

Switch第三方控制器终极指南:用sys-con解锁全平台手柄支持 [特殊字符]

Switch第三方控制器终极指南:用sys-con解锁全平台手柄支持 🎮 【免费下载链接】sys-con Nintendo Switch sysmodule that allows support for third-party controllers 项目地址: https://gitcode.com/gh_mirrors/sy/sys-con 还在为Switch官方手柄…...

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

5步掌握D3KeyHelper:暗黑3自动化技能助手完全指南

5步掌握D3KeyHelper:暗黑3自动化技能助手完全指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在暗黑3的刷图过程中感到手指酸…...

Fluent计算总发散?别急着重画网格,先检查这5个隐藏设置(附诊断命令)

Fluent计算总发散?别急着重画网格,先检查这5个隐藏设置(附诊断命令) 凌晨三点,屏幕上的残差曲线突然像过山车一样飙升,你盯着"floating point exception"的报错提示,咖啡杯悬在半空—…...

数据库知识复习03

第三部分 MySQL DQL 数据查询语言1 数据库的 DQL(数据查询语言)DQL(Data Query Language,数据查询语言)是 SQL 中最核心、使用频率最高的语言类型,核心关键字为 SELECT,用于从数据库表中精准检索…...