gpt4 book ai didi

ruby-on-rails - 使用 Thinking Sphinx 按计数排序

转载 作者:行者123 更新时间:2023-12-04 05:53:57 25 4
gpt4 key购买 nike

我希望我的搜索引擎能够根据特定案件类型的案件数量对律师进行排序。律师结案次数越多,排名越高。

lawyer.rb

has_many :cases    
has_many :case_types, :through => :cases

define_index do
indexes case_types.name, :as => :case_types
has case_types(:id), :as => :case_types_id
has "SUM(case_types)", :as => :case_type_count #this line gives an error, as my lawyer table does't have a case_type column, also, I need to count DISTINCT case_types
end

在我的 search_controller.rb 中,我想做类似的事情,建议是案例类型的名称

@lawyers = Lawyer.search params[:suggestion], :order => "@case_type_count DESC"

我走错了吗?我应该考虑一种不那么面向 Sphinx 的方法吗?问题是我需要在@lawyers 上做一个 each_with_geodist,所以我需要通过 Sphinx 搜索找到我的律师。

最佳答案

将以下内容添加到您的 define_index 中:

has "COUNT(case_types.id)", :as => :case_type_count, :type => :integer

join case_types

然后按 case_count 检索:

Lawyer.search("", :order => "case_type_count desc")

我发现阅读 development.sphinx.conf 中的 sql 代码很有用,它允许我查看正在生成的列名。

关于ruby-on-rails - 使用 Thinking Sphinx 按计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com