电商搜索入门
一、搜索用途
通常一个电商平台里面的商品,少则几十万多则上千万甚至上亿的sku,在这么多的商品中,如何让用户可以快速查找到自己想要的商品,那么就需要用到搜索功能来实现。
通过分析数据发现,接近40%的点击率是直接通过搜索来的。对于电商网站和平台来讲,一个好的搜索功能,能帮助用户精准快速的找到想买的商品,是提高转化率的重要因素。
二、搜索原理及常用算法
2.1搜索原理简介
当用户输入关键词或者选择特定维度进行搜索时,系统一般会经过以下几个流程步骤进行处理:1.输入层→2.逻辑处理层→3.搜索服务层→4.搜索展示层,详情见下图:

2.2搜索常用算法简介
搜索技术的基石是NLP(Natural Language Processing):自然语言处理,基于NLP会衍生出各种的搜索算法。
本文将简单介绍下其中几种常见的算法,如果感兴趣可以自己知乎百度了解。
2.2.1贝叶斯学习
算法思想:如果一个事物在一些属性条件发生的情况下,事物属于A的概率>属于B的概率,则判定事物属于A。
适用场景:贝叶斯算法适用于商品打标分类、个性化推荐等场景。
2.2.2N-Gram分词(交叉切分算法)
算法思想:将文本内容按字节流进行大小为N的滑动窗口操作,形成长度为N的字符串,每个字符串称为gram,对全部gram的出现频度进行统计,并按照事先设定的阈值进行过滤,抛弃垃圾字符串得到新词。
适用场景:适用于新书和用户搜索词中的未登录词的识别。
2.2.3TF-IDF算法(重点词提取)
提取重点词的算法有很多种,比如TF-IDF算法,TextRank算法和CRF序列标注、主题模型算法(包括LSA,LSI,LDA等)。但是对短文本的提取,特别是字符小于10的文本提取关键词,行业上也没有比较好的解决办法,从目前的测试数据来看,TF-IDF算法比较好一些。
算法思想:简单的理解为一个词在文档中出现的次数越多,而在其它文档中出现的次数少,这个词就越重要。
适场场景:对于分词工具分词后有多个分词结果,提取其中重点关键词的场景。
三、搜索逻辑简介
3.1输入层
按照内部逻辑划分,电商系统中的查询方式通常有两种:关键词查询和特定维度查询。
3.1.1关键词查询
关键词查询是整个搜索功能最重要的入口,可以允许用户随意输入要查询的关键词,通常仅有一个查询关键字长度的限制。
关键词通常跟用户想买的商品有及其密切的关联,以图书网站为例,经过埋点数据分析发现,关键词通常有以下几类:书名、作者、出版社、品牌、热搜词等;
关键词通常可以直接在搜索框输入,有的网站也增加了图片识别、语音识别等高级搜索功能,但本质上还是通过关键词搜索。比如图片识别,就是通过OCR技术识别并提取图片上面的关键词后再进行搜索。
3.1.2特定维度查询
特定维度仅可查询由系统指定的部分可属性,如分类、价格/折扣、出版时间、开本、装帧等,并且用户无法输入查询值,仅能选择查询值。
由于这些数据在系统内部都维护有基础数据,并且保存在指定的字段中,所以对它们的查询相对比较简单。用户在选中对应选项时,可以获得唯一ID,之后根据ID查询相应字段获得结果,查询相对比较准确。
3.2逻辑处理层
当关键词输入之后,系统会对输入的关键词进行一系列的清洗处理,比如违禁词过滤、文本纠错、同义词转换、跳转规则匹配等。
3.2.1违禁词过滤
由于用户输入的搜索词系统是无法控制的,所以可能会存在违禁内容,为了符合国家法律规定,系统需要对用户输入的搜索词进行违禁词过滤后才能进行搜索。
违禁词通常分为极限词、敏感词和禁售类违禁词三大类。①极限词是指对商品有夸大存在且与实物描述不符表极限的词汇,比如最佳、第一、史无前例等。②敏感词是指国家领导人名称或黄、暴、不雅、带侮辱性、政治倾向等不适合公共场合展示的词汇。③禁售类违禁词是指不允许在网站或平台售卖商品的词汇,比如大麻、三唑仑等。
要屏蔽对应的违禁词,后台就需要维护一套违禁词词库,当用户输入的关键字在非法词库中就不再做搜索,这样可以减轻服务器压力。
每个电商网站或平台的违禁词都不相同,而且时常更新。当然网上一般有现成的词库,也可以可以直接导入系统,不满足的后台再人工进行维护扩充即可。
3.2.2文本纠错
当用户输入查询关键词时,可能会输入成拼音、或者错别字,比如用户本来想要输入"水浒传",实际却输入成“shuihuzhuan"或者"水许传",但是结果依然能返回和"水浒传"匹配的数据。这是因为系统逻辑中有一套文本纠错的程序在处理,当系统对比有错误时,会进行纠正处理。
同样后台也需要维护一套纠错词库,当用户输入的关键字如果在纠错词库中,则系统会自动将错误关键字替换为设置好的关键字,如:shuihuzhuan->水浒传;水许传->水浒传,之后查询实际采用的是转换后的关键字。
3.2.3同义词转换
当用户输入查询关键词时,也有可能输入了和关键词意思相近的词语,比如用户本来想要输入"三体",但实际却输入成"3体",这个时候系统就会将"3体"转换为"三体",再进行下一步处理。
实现的原理和文本纠错一样,在此便不再赘述。
3.2.4跳转规则匹配
有时我们在电商网站或平台上输入查询关键词后,会发现部分关键词结果不会跳转到结果列表页,而是跳转到一个商家店铺主页或者活动页,如输入关键词"4.23世界读书日",可能直接就进入到了读书节的活动页面。
要实现这个功能,后台同样需要维护一套跳转规则映射库。用户的搜索关键词与规则库中的关键词匹配时,则返回规则所指定的跳转路径,前端页面直接跳转过去,通常这个跳转规则是有时间限定的。
3.3搜索服务层
当用户输入的查询关键词通过违禁词过滤、文本纠错、同义词转换、特定跳转匹配后,依然没有匹配结果。这时系统会将关键字交给商品搜索服务器,搜索服务器首先会对关键字进行分词处理,然后再根据分词进行商品查询,并根据权重规则获得商品权重值,之后再进行权重值排序,最后返回查询结果。
3.3.1分词
分词是指将一个比较长的关键字拆分成多个合理的比较短的关键字的过程。
由于中文不像英文有天然的分隔符,因此需要有专门的分词工具来处理。比如‘人人都是产品经理’这个搜索词,经过分词后可以将其拆分为‘人人、都是、产品经理’。
分词看起来很简单,但是如何将关键词拆分为好的分词并非易事,分词结果的质量好坏直接影响着搜索质量。比如‘人人都是产品经理’这个搜索词,经过不同的分词工具分词后可以有不同的结果,比如:
‘人人、都是、产品经理’
‘人、人、都是、产品、经理’
经过实际的搜索结果来看,第一种分词得到的搜素结果要比第二种好很多。
目前图书行业常用的分词工具有百度分词、jieba(结巴分词)、HanLP(汉语言处理包)、NLPIR(汉语分词系统)等;
通常正常情况下,分词工具都能对关键词正确,但是也会出现一些分词异常情况。比如单字搜索词,当用户输入‘飘’,则会分词失败,这个时候人工将其加入分词库。另外还有一些新品,也会出现分词失败的情况,类似场景较多,在此便不再展开来讲。
3.3.2权重排序
权重是衡量某一指标的重要程度,在电商平台里都是各家的商业机密,网上公开的资料也是少之又少。
一个商品的权重高低,直接决定着商品排序情况,权重越高则商品排名越靠前,也就意味着商品有更多的曝光率,直接影响着销售。
以图书商品为例,常用的权重计算维度有销量、图片、套装类型等,当然也可以手动调整指定商品的权重。
权重的计算方法有很多中,如加权计算法、加权平均数法、AHP层次法、优序图法等等。
3.4搜索展示层
商品经过分词搜索,再经过权重模型计算排序后,就会展示在前端给客户查看,但是系统查询的结果不一定就百分百是用户想要的,所以用户可以自己根据一定的规则再次进行筛选新排序,最终找到自己的想要搜索结果。
常见的排序规则有销量排序、价格排序、销售类型、出版时间排序等。
四、搜索指标
商品从搜索到最终付款,中间主要有以下几个流程:

其中搜索结果质量的好坏,决定用户是否点击,而评估搜索质量主要有两个指标:召回率和查准率。
4.1召回率
召回率(Recall Rate,也叫查全率)是指搜索出的商品总数与系统中所有和搜索词相关商品总数的比率。
4.2查准率
查准率是指搜索出的商品中和搜索词有关系的商品总数与总召回数的比率。
召回率与查准率二者之间没有必然关联,但是又是相互制约的。召回率不是越高越,比如当召回率越高时,查准率可能越低。所以我们通产将这两个度量值融合成一个度量值,如F度量(F-measure)来进行综合评估。
来源:https://mp.weixin.qq.com/s/p_p8DeouvBLM7ako_1OBHA
相关文章:

电商搜索入门
一、搜索用途通常一个电商平台里面的商品,少则几十万多则上千万甚至上亿的sku,在这么多的商品中,如何让用户可以快速查找到自己想要的商品,那么就需要用到搜索功能来实现。通过分析数据发现,接近40%的点击率是直接通过…...
4.3.1初阶数据结构(C语言)(无头不循环单链表)
1.完整的单链表注释: #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h>typedef int SLTDateType; // 重定义数据类型typedef struct SListNode // 定义结构体类型的节点 {SLTDateType data;str…...

一文深度解读音视频行业技术发展历程
从1948年的香农定律,到音视频的今天。IMMENSE、36氪|作者 北京时间2月28日凌晨,FIFA年度颁奖典礼在巴黎举行。梅西荣膺年度最佳球员,斯卡洛尼当选年度最佳男足主帅,马丁内斯荣获年度最佳男足门将!阿根廷因…...

面向对象拓展贴
1. 类和对象的内存分配机制 1.1 分配机制 Java 内存的结构分析 栈: 一般存放基本数据类型(局部变量)堆: 存放对象(Cat cat , 数组等)方法区:常量池(常量,比如字符串), 类加载信息示意图 [Cat (name, age, price)]…...

Android仿QQ未读消息拖拽粘性效果
效果图原理分析首先是在指定某个位置画一个圆出来,手指按到这个圆的时候再绘制一个可以根据手指位置移动的圆,随着手指的移动两个圆逐渐分离,分离的过程中两圆中间出现连接带,随着两圆圆心距的增大,半径也是根据某一比…...
Linux 打包压缩解压指令 gzip bzip2 tar
总结自鸟哥Linux私房菜 Linux压缩文件的扩展名大多是:“.tar, .tar.gz, .tgz, .gz, .Z, .bz2, *.xz”, 不同压缩文件使用了不同的算法,不能通用压缩或解压 常见扩展名: *.Z compress 程序压缩的文件; *.zip zip 程序…...

系统升级丨分享返佣,助力商企实现低成本高转化营销
秉承助力传统经济数字化转型的长远理念 酷雷曼VR再次在VR全景营销中发力 创新研发“分享返佣”功能 进一步拓宽商企VR全景营销渠道 助力商企搭建低成本、高传播、高转化 的VR营销体系 01、什么是“分享返佣”? ●“分享返佣”即“推广”返佣,是酷…...
机试代码模板
文章目录进制转换高精度加/乘法搜索BFSDFS树二叉树遍历图Dijkstra算法Kruskal算法动态规划最长公共子序列(LCS)最长上升子序列(LIS)KMP算法进制转换 #include <iostream> #include <string> #include <cmath> #include <iomanip> #include <algori…...
Java性能优化-垃圾回收算法-理解CMS回收器
垃圾回收算法 理解 CMS回收器 三个基本操作 1.回收新生代(同时暂停所有的应用线程) 2.运行并发周期来清理老年代数据 3.如果有必要则FULL GC压缩老年代 当发生新生代回收 , 如果老年代没有足够的空间容纳晋升的对象则执行FULL GC,所有线程停…...
Oracle11G的表空间数据文件大小限制问题处理
1.表空间数据文件容量 oracle11g的表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统…...
计算机三级|网络技术|备考指南|网络系统结构与设计的基本原则|1
一、网络系统结构与设计的基本原则宽带城域网的关键技术p1 p2 p3设计一个宽带城域网涉及“三个平台一个出口”,即网络平台、业务平台、管理平台和城市宽带出口。宽带城域网:宽带城域网划分为三个层次:核心层、汇聚层、接入层。核心层承担高速…...
基于 TI Sitara系列 AM64x核心板——程序自启动说明
前 言 本文主要介绍AM64x的Cortex-A53、Cortex-M4F和Cortex-R5F核心程序自启动使用说明。默认使用AM6442进行测试演示,AM6412测试步骤与之类似。 本说明文档适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境:Ubun…...

自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第一部分
我是去年9月22日才正式学习Java的,因为在国营单位工作了4年,在天津一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你…...

微电影广告的内容突破方案
微电影作为新媒体时代背景的产物,深受大众的欢迎,同时,微电影广告在微电影模式环境下应运而生,以自己独特的传播优势,俘获了大量企业主的青睐,也获得了广大青年群体的喜爱。微电影广告欲确保可持续发展&…...
茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享
茌平区为什么越来越多的企业由请高新技术企业?山东同邦科技分享 近年来,越来越多的企业开始申报高新技术企业,认定为国家高新技术企业能获得非常多的好处,那么具体都有哪些呢? 一、国际高新技术企业认定的好处: 1、财政补贴: 获得高新企业…...

谷歌优化排名怎么做出来的?谷歌排名多久做上去?
本文主要分享谷歌排名的算法机制,让你很容易地用更短的时间把Google的自然排名做到首页。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 谷歌优化排名怎么做出来的? 答案是:持续更新原创优质内容…...

字节跳动青训营--Webpack
文章目录前言一、为什么要学习Webpack?二、什么是Webpack?1. 产生背景2. 基础概念三、使用Webpack1. 安装2. 编辑配置文件3. 执行编译命令核心流程四、如何使用Webpack流程类配置配置总览五、理解Loader六、理解插件插件钩子课外关注资料前言 此文章仅用…...
微信多媒体文件speex格式转为mp3文件格式
1、安装speex环境 wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.0.tar.gz tar -zxvf speex-1.2.0.tar.gz -C /usr/local/ cd /usr/local/speex-1.2.0/ ./configure make make install 2、配置path到/usr/lib 因为安装的speex生成的可执行文件默认在/usr…...

IAP初探
IAP(In-Application Programming)在应用编程,浅显易懂,按照字面意思即是在程序不关闭情况下,对应用进行再次写入程序,对程序的写入需要传输数据,而传输数据的前提是通信, IAP对代码进行更新可以简要分为以…...

【组织架构】中国铁路兰州局集团有限公司
1 公司简介 中国铁路兰州局集团有限公司,是中国国家铁路集团有限公司管理的18个铁路局集团有限公司之一,简称“兰局”。经过59年的发展,现已成为西北地区最大的交通运输企业之一,形成了以兰州为枢纽,由陇海铁路、包兰铁…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...

小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...