Ruby on rails Rails Thinking sphinx为相关性增加了评级价值
我将Thinking Sphinx用于Rails应用程序。一切都很完美。我只希望我的搜索结果考虑到我的项目的评级(相关性较高的项目首先出现) 我使用了“sort_mode”选项,但它过于强调评级,而对关键字重视不够Ruby on rails Rails Thinking sphinx为相关性增加了评级价值,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,我将Thinking Sphinx用于Rails应用程序。一切都很完美。我只希望我的搜索结果考虑到我的项目的评级(相关性较高的项目首先出现) 我使用了“sort_mode”选项,但它过于强调评级,而对关键字重视不够 我如何使用这个评级来影响搜索结果的顺序呢?首先,您需要将该评级值作为一个属性-这不像人们要搜索它,对吗?如果它以浮子的形式存储会更好吗?因此: has 'items.ratings_sum/items.ratings_count', :as => :rating,
我如何使用这个评级来影响搜索结果的顺序呢?首先,您需要将该评级值作为一个属性-这不像人们要搜索它,对吗?如果它以浮子的形式存储会更好吗?因此:
has 'items.ratings_sum/items.ratings_count',
:as => :rating,
:type => :float
下一步是使用表达式排序模式,您必须对其进行调整,以获得您想要的结果:
Item.search 'foo',
:sort_mode => :expr,
:order => "@relevance * rating"
也许你只希望评级对@relevance有10%的影响<代码>@相关性*(评级/10)。或者你只是想把这两个加起来<代码>@相关性+评级。在你找到你喜欢的解决方案之前,好好玩玩它
Item.search 'foo',
:sort_mode => :expr,
:order => "@relevance * rating"