搜索结果中的常用属性

时间:2017-01-08 17:00:36

标签: php mysql search filtering sphinx

我们正在使用SphinxSearch(因为我们从MySQL返回结果对象而不太相关)以返回用户的搜索结果。这部分工作正常。我们每页显示30个项目,但可能会有多达20k的结果匹配。

我们要做的是添加基于总搜索结果属性和选项过滤搜索结果的功能。以亚马逊搜索为例:

https://www.amazon.ca/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=tablet

如果您查看左侧,您可以按品牌,类别,关键字,折扣百分比,内存容量,屏幕尺寸等进行过滤。显然,这不仅适用于当前显示的搜索结果,而且适用于整个结果集(在此亚马逊中最多可达400页)。

如果我们这样做,我们如何避免加载和循环所有400 * 30结果以显示相关的属性/类别过滤器?我们尝试循环只是为了看看需要多长时间,并且它很容易超过15秒。我们还尝试过缓存常见的搜索术语(例如平板电脑),但很明显,大多数用户搜索都不会整齐地放入易于缓存的结果集中。

此外,这个帖子搜索的名称是否有整个结果集类型的过滤?

1 个答案:

答案 0 :(得分:1)

通常称为分面搜索。即可以按方面过滤结果。

好概述...... http://sphinxsearch.com/blog/2013/06/21/faceted-search-with-sphinx/

简而言之,让sphinx计算列表并计算,而不是在帖子中进行计算

相关问题