[英]Problems using Thinking Sphinx in Ruby on Rails with multiple models
我正在使用搜索引擎Sphinx在Ruby on Rails上開發一個網站(我正在使用Thinking Sphinx)。 我有一個要在其中進行搜索的模型,並且我正在使用其他模型(我在模型和表中建立了關系),但是我想創建其他INNER JOINS,所以,我有這樣的東西:
class Group < ActiveRecord::Base
belongs_to :person
has_many :categories, :dependent => :destroy
define_index do
indexes group_name
indexes person.fullnameindexes categories.category_name
indexes categories.category_name
end
end
做這樣的事情可以嗎?
class Group < ActiveRecord::Base
belongs_to :person
has_many :categories, :dependent => :destroy
define_index do
indexes group_name
indexes person.fullnameindexes categories.category_name
indexes categories.category_name
indexes subcategories.subcategory_name #additional table
end
end
如您所見,我要添加一個新模型(子類別),該模型與模型組沒有關系,但是與模型類別有關系,可以嗎? 或正確的方法是什么?
這些是我關注的鏈接:
http://freelancing-god.github.com/ts/en/indexing.html
http://freelancing-gods.com/posts/a_concise_guide_to_using_thinking_sphinx
如果在類別模型中引用了子類別,則可以執行以下操作:
indexes categories.subcategories.subcategory_name, :as => :subcategory_names
如果需要的話,認為Sphinx將很高興通過關聯進入更深層次的關聯。
我認為對此的簡短答案是“否”。 ThinkingSphinx將嘗試引用Group
名為subcategories
的關聯,該關聯將不存在,並且在建立索引時會出現錯誤。
如果Category has_many :subcategories
,則可以使用:through
選項在Group
表示:
class Group < ActiveRecord::Base
belongs_to :person
has_many :categories, :dependent => :destroy
has_many :subcategories, :through => :categories
然后索引應該識別該關聯,盡管文檔指出您在執行此操作時需要顯式別名,因此:
indexes subcategories.subcategory_name, :as => 'subcategory_name'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.