由于我有一个带有本地化字段的模型(使用 Globalize,我想进行本地化搜索。我在我的模型上设置了两个索引:
ThinkingSphinx::Index.define :document, name: "document_fr", :with => :active_record, :delta => true do
indexes translations.name, :as => :options
indexes translations.description
where "(#{Document.translations_table_name}.locale='fr' OR #{Document.translations_table_name}.locale IS NULL)"
has created_at, updated_at
end
ThinkingSphinx::Index.define :document, name: "document_nl", :with => :active_record, :delta => true do
indexes translations.name, :as => :options
indexes translations.description
where "(#{Document.translations_table_name}.locale='nl' OR #{Document.translations_table_name}.locale IS NULL)"
has created_at, updated_at
end
如何使用 delta 对一个索引进行搜索?
我尝试使用这些indices
选项,但它并没有真正起作用:
Document.search 'something', {
indices: ["document_fr_core", "document_fr_delta"]
}
=> 如果我更改 Document 实例并保存它,则会发生增量索引,并且更改会在 *_delta 中编制索引。但是由于我也在 *_core 上进行搜索,所以即使不再匹配搜索,修改后的实例仍然可以找到:-(
编辑(2015 年 4 月 24 日) 替代解决方案可能是使用方面搜索翻译。但我不确定如何使用它们。如果您认为这是一个更好的解决方案,请告诉我:-)