有没有办法索引STI模型的类型(Ruby中的多态模型&#39),而不是自身?例如,我有一个模型Comment
:
class Comment < ActiveRecord::Base
belongs_to :commenter, polymorphic: true
...
end
是否可以将sphinx编入索引commenters
而不是comments
?
具体而言,而不是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
...
}
我希望sphinx.conf
看起来像:
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
...
}
由于
答案 0 :(得分:1)
我担心Thinking Sphinx无法做到这一点 - 它的构建是为了期望索引映射到单个模型。此外,在您所描述的情况下(如果您要直接在Sphinx中制作类似此类作品而非TS),如果评论者有多个评论,您最终可能会出现重复记录。
为每个评论者类型提供索引并一次搜索所有这些索引,你会好得多。