Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails Thinking sphinx为相关性增加了评级价值_Ruby On Rails_Thinking Sphinx - Fatal编程技术网

Ruby on rails Rails Thinking sphinx为相关性增加了评级价值

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,

我将Thinking Sphinx用于Rails应用程序。一切都很完美。我只希望我的搜索结果考虑到我的项目的评级(相关性较高的项目首先出现)

我使用了“sort_mode”选项,但它过于强调评级,而对关键字重视不够


我如何使用这个评级来影响搜索结果的顺序呢?

首先,您需要将该评级值作为一个属性-这不像人们要搜索它,对吗?如果它以浮子的形式存储会更好吗?因此:

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"