如何设计好一个搜索结果列表过滤器?
 

2009-05-19 作者:puting 来源:SocialBeta

 

最近在做产品的时候,遇到搜索结果列表过滤器的问题,要想把过滤器做的好用,是需要花费一些脑筋的,不仅要对搜索结果中数据属性要熟悉,还要巧妙的将这些属性一一配对。

搜索的作用在于按照某个关键字找到最多(最相关)的结果,而过滤器的作用在于找到最少(最接近)的结果。

过滤器设计的几个要点:

1.属性——搜索结果有哪些属性

比如说手机,它的属性就诺基亚、三星,新的、二手、CDMA、GMS等

2.分组——把属性一一归类

还是拿手机举例,诺基亚三星这些属性归为品牌条件组,新的二手的归为成色条件组,CDMA和GMS等归为网络制式;

3.同类条件组属性之间的选择和撤销问题

比如我选了诺基亚,看看没有合适的,想选择其他牌子的手机看看怎么办。

下面就介绍一些网站的过滤器。

Indeed为一家为一个职位垂直搜索引擎,招聘职位的属性比较好做,薪水范围、招聘公司以及地域是较为关注的,下面以product manager为例搜索,左边的过滤器如下图1



(图1)             (图2)

我选了薪水范围和招聘公司,如图2,如果要选择其他的薪水范围或者招聘公司,只要点击已选的属性条件边的undo,就可以撤销已选的过滤条件,选择其他的。

过滤器的好处:

对于自己的过滤条件一目了然,他将这些选择的过滤条件都用红色虚线框起来的。

个人觉得缺憾是

比如选择我选择了$20,000+,它就把“薪水范围(Salary Estimate)”这个属性组给隐藏了,需要撤销之后才能看到其他属性条件。

再来看看Simplyhired的过滤器,也是一家职位垂直搜索引擎,如下图3、图4所示



(图3)           (图4)

这个和indeed比起来,有了一些改良,

好处是:

我选了Title下面的Product Manager这个条件,整个Title整个条件组还存在,可以自如撤换选其他的Title条件,而自己做的一些条件组合在上面也显示出来,还可以将这些条件组合保存,以便下次快捷使用(51job的搜索条件组合我就经常会用到)

个人觉得缺憾是:

显示自己的过滤条件的区域没有indeed用红虚线框出来的明显,加上这一块区域在未有选择过滤条件的时候就存在,导致视觉上没有明显的差异突出。


(条件选定之前)       (条件选定之后)

一直在想高级搜索和过滤器的问题,其实我自己现在很少会用到一个网站的高级搜索,更多的是用过滤器的。

来看看高级搜索过滤器的区别:

使用高级搜索的时候,是所有条件的叠加,然后一步到位的按一个确定,事实上,我条件可以想出很多,但最终能匹配的结果,也许是零条记录与之匹配的;

过滤器用的可以说是排除法,每次只加一个条件,然后看看结果,随着你条件加上去,搜索结果就更接近你的目标。

这让我想起19楼上的哪些征婚相亲帖,上面的女孩子法的征婚帖基本是在用“高级搜索”的思维模式的,比如某女征婚,条件如下:

  • 条件1 个子在175以上,标准型,有点帅,有点酷,有点身材(太瘦太胖不要);
  • 条件2 年龄在25岁——30岁之间,杭州本地人,或者是打算在杭州定居的;
  • 条件3 有点孩子气(幼稚不要),有点成熟,有点男人味,有点幽默,有点体贴。。。
  • 条件4 有点钱,有点聪明,有点责任心,有点修养,尊敬父母,专一。。。。
  • 条件5 最好有房子、有车子,还有些存款
  • 条件6 。。。

这个是很典型的高级搜索思维模式,这些条件组合按确定键,我想最终的搜索结果一定是零。

过滤器的思维方式就相当于是以缘分(相处)来定,是一种渐进的思维模式,有些条件不满足,可以慢慢来,或者一起将这个条件创造出来,假设一个女孩子身边的男生都符合她的要求,然后通过一步步深入,女生一次次的加上一些条件,最后选出来的结果不一定是一个白马王子,但起码是一个很符合的自己的男朋友。如某女找男友,这样来进行:

先输入关键字,单身的男生,搜索出来的结果可能是一大帮身边的朋友或者熟悉的男生,然后逐次加一个条件来慢慢筛选,

加条件1 个子在175cm以上的,发现剩下的只有6名男生,其中最有感觉的A男不在其中,那就把这个条件撤销,改换169cm以上,发现A男进入其中。

好,开始加条件2,帅气,可爱,幽默,发现有4名入围,可是发现B君没有入围,B君虽然长的一般,但是有幽默感,很好相处,于是条件在修正下,B君入围,后面的条件随着交往的深入和时间的推移,定能将身边的男生过滤到很多,剩下的,就是最有可能成为未来的如意郎君。

有些女孩子在征婚时候,有些条件不一定非要男孩子满足,比如买房子这个条件,男孩子有是最好的,没有可以在未来的日子中共同创建出来。这就提醒我们在设计过滤器的时候,允许用户自己添加一些条件。

综述,好的过滤器设置应该有如下几点:

1。好多用户对于自己要找什么样子的东西,是非常模糊的,这需要一个设计者对于自己的类目的属性要非常熟悉,才能将这些条件一一展示给用户;

2。用户是经常“反悔”,好的过滤器能允许用户能很好的撤销已选的条件,选其他的条件;

3。对于一些条件,也许过滤器中没有,好的过滤器应该让用户参与进来,一起创造出一些条件;

4。好的过滤器应该是循循善诱的,将“条件”一一列出来给用户,而不应该一下子摆出所有的条件,最先应摆出了的条件应该是最大的最能影响结果的条件。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织