Ich überlege gerade, ob elasticsearch oder solr in einem Projekt verwendet werden soll und welche Fälle implementiert werden sollen. Ich fand einen Fall, in dem ich keine Dokumentation finden konnte, die mir etwas komisch vorkam, da der Fall mir ganz normal vorkam. Die Kategorien werden vom Benutzer bereitgestellt, daher kenne ich sie nicht im Voraus. Betrachten Sie den folgenden Teil einer Taxonomie mit Dokumenten, die mehrere Kategorien haben:Hierarchische Facettierung mit Lucene/Solr/Elasticsearch, wobei Dokument mehrere Eltern haben kann
- Wurzel (3)
- Bücher (2)
- Sci-Fi (1)
- DocumentA
- Fantasie (2)
- DocumentA
- DocumentC
- Sci-Fi (1)
- Filme (1)
- Aktion (1)
- DocumentB
- Aktion (1)
- Games (1)
- Abenteuer
- DocumentB
- Abenteuer
- Bücher (2)
In diesem Fall DocumentB könnte ein Eintrag für beispielsweise sein, Indiana Jones. Normal-Term-Hierarchien können mit dem Pfad-Hierarchie-Tokenizer in solr/elastic implementiert werden, so dass DocumentC "Root/Books/Fantasy" als Kategorie mit einem Pfad hat, der auf '/' aufgeteilt ist.
DocumentB müsste jedoch zwei Pfade haben ('Root/Movies/Action' und 'Root/Games/Adventure'). Ich dachte über das dynamische Hinzufügen eines category_n-Feldes pro Pfad für das Dokument in elastic mit dem Pfadhierarchietokenizer nach und führe dann die Kategoriesuche für alle category_ * -Felder durch, aber ich weiß nicht, ob das der richtige Ansatz wäre Die Anzahl der Dokumente für die Facetten ist nicht einfach, da die Anzahl der übergeordneten Knoten nicht die Summe der untergeordneten Elemente ist (Dokumente können mehreren untergeordneten Kategorien angehören und sollten nicht mehr als einmal gezählt werden).
Was wäre ein guter Weg, dies in solr/elastic zu implementieren?
Prost