2016-08-08 12 views
0

STIモデル(Rubyでの多相モデルの関連付け)の型を索引付けする方法はありますか?例えば、私がモデルComment持っている:Thinking Sphinx - STIモデルの型をインデックスする方法

class Comment < ActiveRecord::Base 
    belongs_to :commenter, polymorphic: true 
    ... 
end 

を、インデックスcommentersなくcommentsにスフィンクスを取得することはできますか?代わりにsphinx.conf

。具体的には、私はsphinx.confは次のようになりたいと思う

source comment_core_0 
{ 
    ... 
    sql_query = SELECT SQL_NO_CACHE comments.id * 60 + 2 AS id, 
    'Comment' AS sphinx_internal_class_name, 
    comments.id AS sphinx_internal_id, 
    'Comment' AS sphinx_internal_class 
    ... 
} 

ように見える:

source comment_core_0 
{ 
    ... 
    sql_query = SELECT SQL_NO_CACHE comments.commenter_id * 60 + 2 AS id, 
    commenter_type AS sphinx_internal_class_name, 
    comments.commenter_id AS sphinx_internal_id, 
    commenter_type AS sphinx_internal_class 
    ... 
} 

おかげ

答えて

1

私はこれが持つことはできません怖いですThinking Sphinx - 単一のモデルにインデックスがマップされることを期待するために作られたものです。また、説明したような状況(TSではなくSphinxで直接このようなことをする場合)では、コメント作成者が複数のコメントを持っていれば、重複したレコードになる可能性があります。

コメントタイプごとにインデックスを付け、これらのインデックス全体を一度に検索する方がはるかに良いでしょう。

関連する問題