Domanda

Ho un modello che assomiglia a questo

class Post
  acts_as_tree
end

Quello che voglio fare è condurre una ricerca sul contenuto di un intero thread di post, ma restituisce solo il post del genitore nei risultati e pagina questi risultati.

Ho letto delle sfaccettature in Sunspot/Solr e, sebbene ciò restituisca i risultati corretti, non possono essere paginati.

Fondamentalmente, voglio cercare un set di post, ma raggruppati parent_id. È possibile in Sunspot/Solr?

È stato utile?

Soluzione

Fondamentalmente vuoi cercare su un campo composto da tutti i nodi figlio di un thread. Puoi farlo con la sintassi del blocco di Sunspot. Se il post è un nodo radice, indicizzare tutti i figli del nodo (dovrai implementare All_Children, il che non dovrebbe essere troppo difficile).

searchable do
  text :posts do
    all_children.map(&:post_body) unless parent
  end
end

Quindi cerca su questo campo di testo "post". Dato che hai indicizzato solo qualsiasi cosa per i nodi di root, questi sono gli unici oggetti che verranno restituiti nel set di risultati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top