クラスのセットでグローバル検索を行いたくないのですが、使用するインデックスの配列を指定したいのですが、これは可能ですか?私はグーグルでさまざまな解決策を試しましたが、まだ運がありません。
これは正しく機能します(ただし、1つのインデックスに対して)。
ThinkingSphinx.search "query", :classes => [Foo, Bar], :index => "my_foo_index"
これはエラーをスローします:
ThinkingSphinx.search "query", :classes => [Foo, Bar], :index => "my_foo_index,my_bar_index"
> ThinkingSphinx::SphinxError: distributed index 'my_foo_index' in multi-index query found
これを行うように:
ThinkingSphinx.search "query", :classes => [Foo, Bar], :index => ["my_foo_index", "my_bar_index"]
> NoMethodError: undefined method `force_encoding' for ["my_foo_index", "my_bar_index"]:Array
また、FooモデルとBarモデルの両方で「my_index」のようにモデルのインデックスに同じ名前を付けようとしましたが、インデックスを再構築すると次のエラーが発生しました。
ERROR: section 'my_index_core_0' (type='source') already exists in /dev/config/development.sphinx.conf line 116 col 1.
私が思いつくことができる唯一の解決策は、モデルごとに複数の検索を実行してから、結果をマージすることです。私は検索の関連性を失うので、それは少し吹き飛ばされます...
何か案は?