1

ActiveRecord の構文とメソッドをresultsSunspot が提供するオブジェクトと統合する方法はありますか?

たとえば、 my句でPost.where(...).search{fulltext 'pizza'}.results結果をフィルタリングせず、次を返しますwhere(...)Post.search{fulltext 'pizza'}.results.where(...)NoMethodError: undefined method 'where' for #<Sunspot::Search::PaginatedCollection:0x007fe9b388bd88>

すべてをインデックス化せずに、Sunspot 検索と ActiveRecord クエリを調整する方法はありますか? 私の AR フィルターのいくつかは複雑すぎて、単純に Sunspot の優先構文で書き直すことはできません。

4

1 に答える 1

0

私の知る限り、条件ステートメントのフィールドにインデックスを付ける必要があります。

Post.search do
 with(:blog_id, 1)
 fulltext("pizza")
end

厄介な解決策は、結果を調べるときに条件ステートメントを追加することです。

search.each_hit_with_result do |hit, result|
  if result.post_id == 2
    #stuff
  end
end

条件付きインデックスを作成することもできます。 http://mikepackdev.com/blog_posts/19-conditional-indexing-with-sunspot

于 2013-08-23T16:36:57.520 に答える