搜索功能的原理主要是三步:
Step1:对用户输入信息的解读转译
Step2:根据用户的输入信息对内容进行筛选
Step3:将筛选后的结果进行排序
搜索前的设计
在使用搜索前,用户是一种带有相对较明确的目的才会去使用搜索功能。所以对于搜索前这一场景,我们需要考虑的第一个问题是搜索框在哪里,怎样的交互形式呈现给用户。其次是搜索功能与交互界面布局。
搜索中的设计
(一) query查询构造示例:
①简单查询
根据标题、访问量、问题分类、标签等字段进行查询。(比如按标题进行模糊搜索,出现所有标题中含有电池的数据,一共9条)
②复合查询
1、根据分类:搜索问题分类(kind)为显示器问题的所有项数据,并按照访问量(visitor_volume)降序排列。
http://120.24.46.77:8983/solr/ceshi/select?fq=kind:显示器&indent=on&q=*:*&sort=visitor_volume desc&wt=json
2、根据标签:搜索问题分类(kind)为电源,标签(lable)中含有电源、主板字段的所有数据项。
http://120.24.46.77:8983/solr/ceshi/select?fq=kind:电源&fq=lable:主板&fq=lable:电源&indent=on&q=*:*&start=0&wt=json
3.查询关键字中包含“笔记本”的数据,高亮显示内容(content)中的关键字。
http://120.24.46.77:8983/solr/ceshi/select?hl.fl=content&hl=on&indent=on&q=笔记本&rows=5&wt=json
(二)搜索功能设计:
从搜索维度出发,搜索功能应包含有
1.历史记录功能
保存历史查询记录,方便用户快速查找浏览过的有用信息。
2.搜索建议功能(自动填充)
搜索建议这一功能是为了满足用户只能描述清楚问题部分关键字等一些模糊搜索需求时的场景,不用全部打完,只打出部分文字就可以给出建议搜索词,能节省用户的操作成本。
3.热门信息预加载
进入搜索页时,能看到一系列热门关键词或常用的电脑故障解决办法的标题,用户可以直接点击搜索。而这些推荐的关键词来源,是基于过去的搜索历史或用户群使用行为生成的。
4.相关推荐
根据用户搜索的关键字,按访问量、问题类型、发布时间等元数据提供与用户搜索内容最相关的信息,并在新加载的页面筛除已经访问过的数据信息。
5.分组查询facet
比如在taobao或者京东买东西的时候,搜索手机,出现好多品牌、价格区间等分类信息,这就是分组。在我们项目中,可设置问题类型分类、数据来源分类。
6.去重查询