So suchen Sie nach einem Baum mit sonnenfleck & solr
-
28-10-2019 - |
Frage
Ich habe ein Modell, das wie folgt aussieht
class Post
acts_as_tree
end
Das, was ich will zu tun ist, führen Sie eine Suche auf den Inhalt eines ganzen thread posten, sondern nur die Rückkehr des übergeordneten posten in den Ergebnissen, und paginiert diese Ergebnisse.
Ich habe gelesen, über Facetten in sunspot/solr, und während dies die richtigen Ergebnisse zurück, Sie können nicht paginiert sein.
Im Grunde, will ich suchen eine Reihe von posts, aber die Gruppe durch Ihre parent_id
.Ist das möglich in sunspot/solr?
Lösung
Sie wollen im Grunde, um die Suche über einen Bereich, der aus allen von thread ' s Kind-Knoten.Sie können dies tun, mit Sonnenflecken die block-syntax.Wenn die post ist ein root node, index alle Knoten, die Kinder (Sie haben zu implementieren all_children, das sollte nicht allzu schwierig sein).
searchable do
text :posts do
all_children.map(&:post_body) unless parent
end
end
Suchen Sie anschließend über dieses "posts" text field.Da Sie nur indizierte alles, was für root-Knoten, dies sind die einzigen Objekte, die zurückgegeben werden in Ihrem ResultSet.