因为工作需要,最近有在学习商品搜索引擎的东西。会涉及到系统推荐、个性化推荐和排序推荐。 排序推荐 比较偏向于 输入联想(类似于淘宝,我们输入手机,下面会提示推荐)。 但是本文,重点介绍个性化推荐。 这种情况内容推荐 可以补位,推荐类似商品。 发布者:全栈程序员栈长,转转请注明出处:https://javaforall.cn/2279.html原文链接:
## 技术栈Appgallery connect## 开发准备上一节我们新建了商品搜索页,实现了顶部的搜索bar以及下方的推荐搜索列表,这一节我们要新增一个商品搜索记录列表,以及输入内容之后搜索出对应商品的功能 ,我们还需要保证搜索内容的唯一性,以及搜索记录的本地数据持久化和搜索记录列表的删除## 功能分析商品搜索记录列表,我们可以通过保存输入的搜索内容到用户首选项中实现。 商品搜索通过输入的名称与云数据库的商品名称匹配。 list.includes(newItem)) { list.push(newItem); } return JSON.stringify(list);}```根据搜索内容查询对应的商品``` onClick(()=>{ router.back() }) TextInput({ text: this.text, placeholder: '输入商品名搜索
它能从项目一开始就赋予你的数据以搜索、分析和探索的能力,可用于实现全文搜索和实时数据统计。 可以使用衍生查询 在接口中直接指定查询方法名称便可查询,无需进行实现,如商品表中有商品名称、标题和关键字,直接定义以下查询,就可以对这三个字段进行全文搜索。 /** * 搜索查询 * * @param name 商品名称 * @param subTitle 商品标题 :商品属性参数表 pms_product_attribute_value:存储产品参数值的表 整合Elasticsearch实现商品搜索 在pom.xml中添加相关依赖 <! 进行商品搜索 ? ?
5.创建并使用商品搜索组件Search 小程序home首页需要用到商品搜索的输入框,因此我们创建一个名为Search的自定义组件。并在home首页引入,并使用Search组件。 我们继续完善搜索组件的功能! align-items: center; background-color: #FBFBFF; color: gray; border-radius: 13rpx; } 3.3 点击搜索框 ,跳转到商品搜索页面 到此,我们就完成了home首页商品搜索的功能。 后面再具体实现搜索数据渲染功能。
二、系统推荐 2.1、系统推荐目的 针对所有用户推荐,当前比较流行的商品(必选) 或 促销实惠商品(可选) 或 新上市商品(可选),以促进商品的销售量。 (1)系统自动化推荐考虑因素有:商品发布时间、商品分类、库存余量、历史被购买数量、历史被加入购物车数量、历史被浏览数量、降价幅度等。 3.3、用户喜好设计 (1)判断用户喜好因素:历史购买、历史购物车、历史搜索、历史浏览等,待确定我们可用数据再进一步细化。 (2)用户对某个商品的喜好程度,通过不同行为对应不同分值权重,如:历史购买(10)、历史购物车(8)、历史搜索(5)、历史浏览(6),确定用户喜好因素后再进一步对各个因素评分权重进行 合理的设计。 (3)用户对商品的喜好程度最终体现:结合某个商品的不同行为 统计出 最终对该商品的喜好程度,即对商品的喜好程度,最终以一个数字体现。
图片 业务背景:大家有探讨稳定的通过接口形式采集1688商品列表及商品详情页面数据,获取商品列表主图、价格、标题,商品销量,sku的等数据接口完整解决方案。这个引起了我技术挑战的兴趣。 解决方案:封装成item_get-获得1688商品详情接口和item_search-按关键字搜索商品接口,利用代码请求该接口后可以拿到商品ID,商品标题,商品优惠券,商品到手价,商品价格,商品优惠价,商品 sku属性,商品图片,商品视频,商品sku属性图片,商品属性描述,商品库存,商品销量,店铺优惠券信息等商品详情页面有的数据均可以拿到,可以结合其他接口关键词搜索接口,详情接口,销量接口,店铺所有商品接口 ,店铺订单,店铺上传接口,买家订单接口,商品评论接口,图片搜索接口,淘口令接口等接口,整个平台页面上可以看的到数据均可以拿到,接口适用于淘宝天猫,京东,拼多多,阿里巴巴,微店,抖音,亚马逊,速卖通,lazada discount_only=&sort=&page_size=40&seller_info=no&nick=&seller_info=&nick=&ppath=&imgid=&filter= 参数说明:q:搜索关键字
对于电商系统来说,商品搜索是其核心功能之一,如何能保证在海量的数据中,能低延时的搜索到关心的商品信息直接影响到用户的使用体验,在商品搜索中,如根据用户画像定向的做推荐,或是基于位置信息如美团O2O类搜索 ,这些个性化搜索是关系型数据库无法完成的,这时候搜索引擎ElasticSearch+Redis就能发挥关键作用。 有了ES为什么还需要Redis 职责不太,ES比较适合做聚合搜索,一般在买家首页,根据用户的搜索条件、位置、用户画像等条件搜索,他搜索的是一批数据,而Reids由于它的存储结果是K-V形式,这就觉得了他只适合根据主键制作搜索 ,比如用户在商城首页搜索到商品,需要点击商品详情,这时候就从Redis中取数据。
对每个商品有个画像,其中最关键的指标是点击率、价格档位(8档)。 以搜索“皮鞋”为例,一开始推荐与用户购买能力匹配的价格档位,如果连续两次点击高价位的“皮鞋”,那么从第三次搜索开始就会发生质的变化,推荐的几乎全是高档“皮鞋”。 而且淘宝搜索结果给出的,是最有可能点击或者或者购买的商品。真是目标明确,且看人下菜。 原理分析 ? 淘宝搜索用了强化学习方法,来优化搜索结果排序策略Q。 状态s为把用户前2次点击的商品价格档位(0~7,从低到高)作为状态,作为强化学习智能体Agent感知到的状态、动作a是商品排序,对策略的奖励R是用户点击了或者购买了推荐的商品。 也就表示在状态上执行动作时,PV中所有商品能够被点击(或购买)的似然概率之和。经验项即: ?
可解释集成模型改进商品检索机器学习领域正飞速发展,新模型层出不穷,均承诺超越前代。然而,为特定用例评估新模型是一个耗时且消耗资源的过程。 该数据集包含三种语言的数百万个查询-商品对,其中查询与商品之间的关系已按照ESCI方案(精确匹配、替代品、互补品或不相关)进行了标注。 给定一个查询,一个商品可以被分类为:精确匹配(查询中指定的品牌和/或型号)、替代品(同一产品类别但来自不同制造商的产品)、互补品(互补产品,例如查询手机时的手机壳)或不相关(一个重要的分类,因为它适用于给定查询中的绝大多数产品 例如,在内部商店中,会构建图谱来捕获不同类别的产品倾向于一起购买、哪些产品在单个搜索会话中倾向于一起被查看、哪些产品最常与特定查询词相关联等信息。 但在论文中,描述了几种提高集成模型效率的技术,例如缓存先前见过的查询-商品对的标签以供后续重用,以及为频繁检索商品周围的邻居预计算GNN嵌入。实验表明,集成模型对于实时部署应该是可行的。
## 技术栈Appgallery connect## 开发准备随着开发功能的逐渐深入,我们的应用逐渐趋于完善,现在我们需要继续在首页给没有使用按钮以及组件添加对应的功能,这一节我们要实现的功能是商品搜索页面 ,这个页面我们从上到下开始实现功能,首先就是一个搜索的bar,然后是一个系统推荐的热门搜索列表。 ## 功能分析要实现顶部的搜索bar其实还是非常简单的,我们只需要使用对应的row布局去填充对应的组件,然后根据输入状态来实现对应组建的展示和隐藏即可,热门搜索列表我们需要在云端新建对应的表,填充数据后 naturalbase_ClassName(): string { return 'search_hot_txt'; }}export { search_hot_txt };```之后我们创建对应的商品搜索页面 onClick(()=>{ router.back() }) TextInput({ text: this.text, placeholder: '输入商品名搜索
中文分词器 由于商品搜索会涉及中文搜索,Elasticsearch需要安装插件才可以支持,我们先来了解下中文分词器,这里使用的是IKAnalyzer。 我们先来实现一个最简单的商品搜索,搜索商品名称、副标题、关键词中包含指定关键字的商品。 综合商品搜索 接下来我们来实现一个复杂的商品搜索,涉及到过滤、不同字段匹配权重不同以及可以进行排序。 这里我们有一点特殊的需求,比如商品名称匹配关键字的的商品我们认为与搜索条件更匹配,其次是副标题和关键字,这时就需要用到function_score查询了; 在Elasticsearch中搜索到文档的相关性由 这里我们的实现原理是这样的:首先根据ID获取指定商品信息,然后以指定商品的名称、品牌和分类来搜索商品,并且要过滤掉当前商品,调整搜索条件中的权重以获取最好的匹配度; 使用Query DSL调用Elasticsearch
倒排索引构建 往ES写商品记录时,ES先对需搜索的字段(商品标题)进行分词,即把一段连续文本按语义拆成多个单词。然后ES按单词给商品记录做索引,就形成上表的倒排索引。 然后,ES在倒排索引搜索输入的每个关键字分词,搜索结果: TERM DOCID 苹果 666,888 手机 888 666、888两条记录都能匹配上搜索的关键词,但888商品比666这商品匹配度更高 如何在ES中构建商品的索引? 用ES构建一个商品索引,实现一个商品搜索系统。 为实现商品搜索,需先把商品信息存放到ES。 只需两个字段: sku_id title 用户搜索商品时,在ES中匹配商品标题,返回符合条件商品的sku_ids。
最近刚好在学习搜索引擎分词,有了解一些分词插件,在这里给各位猿友分享一下。 六、词库推荐 分词基本都是基于词库实现的,下面博主推荐一个词库,搜狗输入法细胞库,里面词库很全面,而且已经分好类,比如如果是商品搜索引擎,在里面寻找相关词库,有助于提高准确度哦:http://pinyin.sogou.com
01 背景介绍 电子商务搜索是京东等电商重要组成部分,用户通过搜索找到自己需要的商品,然后下单购买。一个典型电商搜索引擎的架构,包括三个重要组成部分:query 理解、召回和排序。 ? 下面介绍一个我们在商品搜索排序中尝试的方法。 1. 双胞胎网络 我们的训练数据来自于用户的搜索日志,通过将同一个 session 中用户购买的商品 ( 商品a ) 和没有购买的商品 ( 商品b ) 配对起来,并把购买未购买作为最终学习的 label,从而构造了用户查询 个性化升级 在第一版双胞胎模型中,我们简单的对用户的历史行为做 sum pooling,但是这样缺乏和搜索商品的交互,无法精准的表示用户的兴趣;为了加强用户的交互,我们升级了模型的结构,用候选商品和用户历史商品做 推动训练平台升级,提升模型训练速度 搜索排序是商品检索最重要的模块之一,我们在个性化、时效性、多目标等方向不断迭代,提升了排序体验,也提升了商品成交量。
用到京东的对其搜索应该不会陌生,其搜索也是使用elasticsearch完成的,下图为一个搜索效果图: 搜索筛选条件会根据查询返回的结果动态变化,要实现这个功能就要用到elasticsearch的聚合功能 ,先看下商品索引对应的映射: { "mapping": { "es-product": { "dynamic_templates": [ { ,把aggregations中的数据处理后返回给前端就可以实现类似京东的商品搜索效果。 =0,len=arrs.length;i<len;i++){ SearchHit hit = arrs[i]; //ESProduct为商品类 mainTitle") String mainTitle; @Field(name="subTitle") String subTitle; /** * 商品品牌
经过多年的实践和研究,「庄帅零售电商频道」发现电商流量来源出现了多样性的特征,总结了“五维流量模型”,包括商品、内容、搜索、社交和游戏五个维度。一直以来,商品都是电商平台最为基础也最为可靠的流量来源。 丰富的商家和商品、多样的商品类型,电商平台的运营难度和成本也在不断增加。而内容平台、搜索技术、社交工具和游戏,这四者在获取用户的效率要比商品获取用户更高,投入也要小得多。 如果照搬货架电商的经营思路,搜索平台做电商不一定有胜算,毕竟货架电商以商品为主的体系不仅投入大且组织过于庞大和复杂,不仅搜索平台无法简单复制,早期PC时代的内容平台、社交工具、游戏都面临同样的困境。 综合分析下来,在商品、内容、搜索、社交和游戏五个方面较为完整且形成联动效应的当属拼多多,美团仅需要强化内容的部分。 京东、淘宝天猫需强化内容、社交和游戏,微信需强化商品、搜索和游戏,抖音电商和快手电商需强化商品、社交和游戏。
主要经营女装、鞋包、配饰、美妆、家居等商品,致力于为年轻时尚女性提供便捷、个性化、多元化的购物体验。蘑菇街的商品覆盖面广,价格实惠,向用户提供高质量、高性价比的产品。 图片mogujie.item_search-关键词搜索蘑菇街商品列表数据1.请求方式:HTTP POST GET2.请求地址:http://c0b.cc/R4rbK2 3.请求示例(复制Taobaoapi2014
以下是一个具体案例来说明Deepseek如何在电商平台中提供帮助: 背景 大型电商平台拥有数百万种商品,每天有数百万用户在该平台上进行商品搜索。 随着商品数量的不断增加,用户准确找到所需商品变得越来越困难。传统的基于关键词匹配的搜索方式往往无法满足用户的多样化需求,且搜索结果排序不够精准,导致用户需要花费较长时间才能找到满意的商品。 问题 搜索准确率低:传统搜索方式难以准确理解用户意图,导致搜索结果与用户需求不匹配。 搜索结果排序不合理:相关商品未能根据用户偏好和商品热度进行合理排序。 优先展示用户更可能感兴趣的商品,提高搜索结果的满意度。 个性化推荐: 结合用户画像和商品特征,为用户提供个性化商品推荐。 在搜索结果中穿插相关商品推荐,增加用户发现新商品的机会。 搜索结果排序更合理: 搜索结果能够根据用户偏好和商品热度进行合理排序,相关商品更靠前展示。 用户点击率和购买转化率均有所提升。 用户体验优化: 搜索效率提高,用户能够更轻松地浏览和购买商品。
在今年的知识发现与数据挖掘大会(KDD)上,某机构举办了一场研讨会,公布了其在KDD Cup(KDD年度系列竞赛)框架下发起的“提升商品搜索的ESCI挑战赛”的结果。 作为挑战的一部分,发布了一个包含困难搜索查询的大型数据集——购物查询数据集,旨在促进查询-商品语义匹配领域的研究。挑战尽管机器学习近期取得了进展,但正确分类商品查询结果仍然具有挑战性。 已经公开发布了购物查询数据集,希望它能因其在捕捉真实客户查询复杂性方面的代表性而成为商品搜索领域的ImageNet。在一篇arXiv论文中,介绍了数据收集和清理过程的更多细节,以及基本统计数据。 数据集的独特性该数据集的一些重要特征:它源自真实用户在线上搜索真实商品。商品链接到一个在线商品目录。对于每个查询,数据集提供了一个包含多达40个潜在相关结果的列表,以及ESCI相关性判断。 每个查询-商品对都附带一些额外的公开商品目录信息(包括标题、商品描述和额外的商品要点)。挑战结果与研讨会研讨会邀请了KDD Cup竞赛的获胜者进行报告。
80% 的工业电商开发者都栽在 “原理懂但落地难” 的坑里 —— 这份指南拆解搜好货接口的工业适配技术,附可跑代码 + 错误速查,半天搞定精准搜索开发,避开 90% 的坑。 page_size}_{page_num}" # 先查缓存(工业高频词缓存久,低频词短) if cached_data := r.get(cache_key): print("从缓存获取工业商品数据 ", category="1001", page_size=50, page_num=1 ) # 打印工业商品关键信息 (型号、价格、销量) for item in result["items"]: print(f"商品名:{item['title']} | 型号:{item.get( 工业推荐系统某工业平台用接口数据做推荐:用户搜 “轴承 6205”,推荐同规格高销量商品;购买转化率从 7% 提至 16%,用户停留时间翻 1.5 倍。