Sunspot&Solrでツリーを検索する方法
-
28-10-2019 - |
質問
このようなモデルがあります
class Post
acts_as_tree
end
私がやりたいのは、投稿のスレッド全体の内容について検索を行うことですが、結果の親の投稿を返すだけで、これらの結果をpagingします。
Sunspot/Solrのファセットについて読んだことがありますが、これは正しい結果を返しますが、それらはペジングすることはできません。
基本的に、私は一連の投稿を検索したいのですが、彼らによるグループ parent_id
. 。これはSunspot/Solrで可能ですか?
解決
基本的に、すべてのスレッドの子ノードで構成されるフィールドを検索したいと考えています。 Sunspotのブロック構文でこれを行うことができます。投稿がルートノードの場合、すべてのノードの子供をインデックス化します(すべて_Childrenを実装する必要がありますが、これはそれほど難しくないはずです)。
searchable do
text :posts do
all_children.map(&:post_body) unless parent
end
end
次に、この「投稿」テキストフィールドを検索します。ルートノードのみのインデックスを作成したため、これらは結果セットで返される唯一のオブジェクトです。
所属していません StackOverflow