Elasticsearch实战(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 一个好的搜索引擎是怎样的

让我们花点儿时间思考一下,在日常体验中,什么样的搜索引擎可以称得上是“好的搜索引擎”。为了更好地理解这一点,我分享一次我使用糟糕的搜索引擎的经历。

最近,我家领养了一只小狗,名叫Milly(就是照片里的这只)。因为是第一次养狗,所以我开始在网上搜索狗粮。我浏览了我喜欢的超市网站,但令我失望的是,搜索结果并不是我想要的。结果列表包括“便便袋”(搜索狗粮时最不想看到的东西)和其他不相关的产品。该网站也没有筛选、下拉列表或价格范围选择等功能,它只是一个展示搜索结果的简单页面,并且启用了不太灵活的分页功能。

我对当前超市网站的搜索并不满意(受好奇心的驱使,我渴望了解其他搜索引擎是如何实现的),于是将搜索范围扩大到了其他超市网站。有一个网站展示了宠物背带,而其他网站的结果也参差不齐,其中一次搜索甚至向我展示了婴儿的午餐盒!

我不仅从搜索中得到了糟糕的结果,而且这些超市网站背后的搜索引擎在我输入时也没有提供建议,在我把“dog food”(狗粮)错拼成“dig fod”时,它们也没有纠正我的输入错误(我们被Google惯坏了,我们期望每个搜索引擎都有类似Google的建议和自动纠错的功能)。它们中的大部分并没有提供替代品或者类似物品的建议。有些结果并不相关(即并不是基于相关性的——但是这是可以接受的,因为并不是所有的搜索引擎都能保证提供相关的结果)。有一个超市网站甚至为一个简单的搜索请求返回了整整2400个结果!

由于对各大超市网站的搜索结果并不满意,我转向了亚马逊这个流行的在线购物网站,在这里我遇到了一个“好的搜索引擎”。当我刚输入“dog f ”时,一个下拉列表就向我展示了建议(见右图)。默认情况下,亚马逊的初始搜索会返回相关的(与我正在搜索的内容非常接近的)结果。如果需要,用户可以使用“按特征排序”选项来更改排序顺序(如价格从低到高或从高到低等)。一旦完成初始搜索,用户还可以通过选择品类、顾客平均评价、价格范围等条件来进一步探索其他类别。我甚至尝试了一个错误的拼写“dig food”,亚马逊问我是否指“dog food”。很聪明,对吧?

在当前的数字世界中,大家都很关注搜索。组织往往会毫不犹豫地采用搜索技术,因为它们清楚搜索引擎所能提供的商业价值,以及它可以解决的各种问题。下面我们就探讨一下搜索引擎的指数级增长,以及技术如何促成先进搜索解决方案的产生。