2。 搜索
搜索的过程,实际上可以分为召回和排序两步:
召回:把符合的搜索结果拿回来
排序:按照排序规则,对召回的结果进行排序
1)召回
召回时常见的问题是在「召回率」和「精确率」的取舍。
召回数据的太多,可能会导致召回了不相关的结果。召回的数据太少,有可能导致想要搜索的结果没有召回。
我们可以通过增加筛选条件,通过实际识别技术,对不同的实体提供不同的召回率来优化搜索结果。
例如还是在高启强的案例中,通过名称来搜索“高启强”的的人数肯定是最多的,也就是“姓名”这个实体重要性最高。通过搜索“旧厂街”来搜索的人数其次,“住址”这个实体可以列为中等重要。而通过身高来搜索高启强的人数肯定比较少,重要性最差。当用户搜索 175 时,就没必要召回高启强的数据。
2)排序 瑞文文摘站内查询
常见的排序,是按照单一维度的排序。例如从近到远排序,评分从高到底排序。
早期的大众点评,提供了这样的排序方式,但是因为单一维度的排序,往往很难满足用户的需求,会导致搜索结果中出现大量低质量的门店。所以后来,大众点评也将“从近到远”优化成了“距离优先”,将“评分从高到低”优化为“好评优先”,在距离和评分的基础上,加上了其他考量因素。这样既优化了用户体验,也提高了商业效率。
复杂的排序方式,比如按照“相关度打分”算法排序,是根据文本的匹配度,对不同的搜索结果进行打分。让相关度更高的搜索结果,分数就越高。例如在 Elastic search 的全文搜索中,默认根据 BM25 算法来计算文本相关度,根据文本匹配度来排序。
基于相关度算法,不同的实体之间的相关度对打分的影响,也是可以调节的。瑞文文摘站内查询
在之前的海外 O2O2 交易平台中,当分词命中了实体词库后,我们会适当提高提高实体打分的权重。
例如我在大众点评中,搜索“珠江新城”这个词时,如果只考虑店铺的名称,那么名称里含有“珠江新城”的搜索结果会排在前面,比如“XXX(珠江新城店)”,但这并不是用户希望看到的,所以此时应该提高“商圈”的实体在打分排序中的权重。相应地,在搜索结果中,会优先展示珠江新城商圈、咖啡厅的餐厅类型,咖啡的食物分类的搜索结果。至于提高多少,就需要根据实际情况来调优了。
3。 结果展示
通过搜索,拿到数据后,最后一步就是搜索结果的展示了。也就是大家搜索后看到的页面。各个应用可以根据自己的业务特点,设计对应的展示样式。
在设计时需要考虑的是:
1)数据的展现样式
例如在淘宝搜索不同商品时,展示的方式不一样的,有的双列瀑布流,有的是通栏的列表。
例如在微信中,搜索不同的内容,文章、视频号、表情、百科等的展现形式都是不同的。
2)展示每一个搜索结果的哪些信息 瑞文文摘站内查询
例如在大众点评中,每一个搜索结果都包含标题、图片、评价、地理位置、距离、商圈、用户评价、是否有套餐等等信息。产品设计是应该思考的是如何设计一个卡片的展示,在提供用户想要的消费决策信息的同时,保证页面的简洁美观,提高搜索的有效性。
4。 其他搜索相关的产品设计