更新时间:2020-11-16 15:18
本文将介绍如何使用阿里云OpenSearch基于电商场景构建出一个简单的商品搜索原型,从而满足业务对商品搜索的需求。在构建类似电商平台建设中,有一块重要的业务要求是可通过关键字搜索的方式对商品信息中不同属性进行搜索,同时可对搜索出的商品列表进行分类的过滤,采用阿里云OpenSearch产品实现一个商品搜索的原型,能很好的满足项目的需求。
第一次开通阿里云账号并登录控制台时,会提示先创建access key才能继续使用。
整个原型的系统架构如下:
1.登录阿里云OpenSearch控制台——->应用管理,单击右上角的创建应用:
2.选择应用类型:
本文基于电商场景下,涉及多表关系映射,所以选择支持简单多表join逻辑的高级版应用类型。关于应用类型的详细介绍请参考OpeanSearch应用类型说明。
3.填写应用信息:
选择商品类型:目前系统支持预付费和后付费,具体区别可参考:计费方式与价格。
选择地域和可用区域:目前opensearch支持的可用区域有
应用名:应用名由以英文字母开头的数字、英文字母或下划线组成,长度不超过 30 个字符 ;注意:应用名称创建后无法修改!
应用类型:高级版、标准版。
购买规格:目前opensearch支持的有共享通用、共享计算、共享存储、独享通用、独享计算、独享存储,详情可参考:计费方式与价格。
存储容量和计算资源:按实际而定,计算资源估算方法:LCU个数=QPS*单次查询消耗的LCU。其中单次查询消耗的LCU可以按照参考LCU估算器或者先购买一个入门型应用后,在搜索测试功能中进行测试查看单次查询消耗的LCU。
4.配置应用:
使用阿里云开放存储服务ODPS、RDS、POLARDB可以在OpenSearch控制台直接配置使用相应的数据源,数据将自动同步进入OpenSearch,简单、方便、可靠。本文将以RDS为例,选择通过数据源创建应用结构。
5.连接数据源
填写数据库配置,具体参见下图:
6.选择数据源:
7.定义应用结构
我们采用商品表为主表,商品价格表为辅表的方式创建了应用结构即商品价格表主键pid关联商品表外键id。 原型所用的结构如下图:8.定义索引结构
将商品表、商品价格表中需要搜索的相关字段添加到索引列表“default”中,这样就能通过query=default:“关键字”
,对商品进行搜索操作了。具体配置见下图:
注意:分词方式直接影响搜索结果,请谨慎选择,关于分词方式的选择具体请参考文档。
9.配置数据源
在这里,您可以选择是否开启数据自动同步功能。 开启后,数据更新将自动同步至OpenSearch。
10.配置完成后,点击“完成”,此时在应用详情页中就可以看到,应用的状态处于“数据初始化中.”:
上面我们是以RDS为例,索引构建中会默认开始导入全量数据,可以在应用详情页中看到具体进度。当然也可以调用OpenSearch API或者SDK来手动上传数据:
数据上传成功后就开始搜索体验了,OpenSearch控制台内置了OpenSearch搜索可以通过API/SDK或者页面搜索测试页面进行查询(详见API及SDK说明),本文以系统中搜索测试页面为例,搜索语法请参考API开发者手册搜索接口及搜索子句介绍。搜索结果如下图所示:
您还可以利用OpenSearch各种自定义的功能,来获得更优的搜索体验。例如解决目前用户长尾query召回少、搜索词填写错误无法召回、输入拼音无法召回等问题,具体请参考查询分析和相关性实战。
配置一个查询分析:
这里我们以拼写纠错为例配置一个查询分析:
第一步:创建查询分析干预词典:
1.1 依次单击控制台主页功能 扩展---->词典管理
进入查询分析干预词典页面:
1.2 点击右上角“创建”,词典类型为拼写纠错,输入词典名称点击“保存”:
1.3 在词典列表中刚刚创建的词典后单击词条管理进入干预词典页面:
1.4 单击新增干预词条配置您的干预词条:
1.5 单击保存,添加成功。您可以在干预词条列表中看到您创建的干预词条:
第二步:应用管理页面左侧导航栏中依次单击召回配置→查询分析进入查询分析页面:
第三步:单击右上角创建添加一个未上线规则,干预词典选择我们刚刚创建的dic_error:
第四步:创建之后,可在查询分析界面,点击“搜索测试”进行效果验证:
第五步:调试无误后,可返回查询分析界面,在切换到“索引视角”后,将其设置为默认查询分析:
配置排序表达式:
排序表达式允许用户为应用自定义搜索结果排序方式,通过在查询请求中指定表达式来对结果排序,具体请参考搜索相关性配置。
第一步:依次单击应用主页排序配置→策略管理进入搜索结果排序管理页面:
第二步:单击右上角的创建,添加新的基础排序(粗排):
基础排序(粗排)对性能影响较大,尽量选用最有代表性的字段。这里我们以配置文本分、文档新旧程度的算分配置为例。
第三步:添加新的业务排序(精排):这里我们以配置商品名相关性相关性为例。
第四步:完成配置。搜索结果如下图所示:
这里搜索测试支持普通查询和设置策略排序后的查询结果对比。
配置下拉提示:
电商场景中,为了减少用户输入,帮助用户尽快找到想要的内容,我们可以使用开放搜索的下拉提示功能。关于下拉提示功能的配置请参考下拉提示。
配置类目预测:
您也可以使用类目预测功能预测用户想要查询那个类目的结果,具体步骤请参考类目预测。
其他常用配置:
if(!lowPrice.equals("")){
queryElement.addFilter("price>=" + lowPrice);
}
if(!highPrice.equals("")){
queryElement.addFilter("price<=" + highPrice);
}
至此一个简单的基于阿里云OpenSearch构建的电商场景下的搜索原型已经构建完成。OpenSearch提供了比较完善的搜索服务和API接口,能够基于OpenSearch快速实现业务对于搜索的需求,大大减少了开发工作,提高了搜索功能开发的实现效率,同时也减少了搭建复杂搜索引擎平台带来的系统部署和运维的工作量和成本。用户可以根据业务场景的不同选择OpeanSearch各种自定义配置和功能,从而获得更优的搜索体验。
在文档使用中是否遇到以下问题
更多建议
匿名提交