Zum Inhalt springen

SOLR: Kategoriesierte Suche

Erstellt am 9. November 2011 · Noch keine Antworten

Tags: Kategorien, Suche, Frage

freakkiller ·

Hello out there!

Ich stehe nun bereits seit geraumer Zeit vor dem Problem, dass sich mein Kunde eine kategorisierte Suche wünscht. Er lässt sich mit nichts auf der Welt von dieser Idee abbringen, obwohl ich ihm schon mehrfach erklärt habe, dass Typo3 von der Systemarchitektur her Seitenkategorien (und eine Suche danach) nicht unterstützt.

Nun habe ich die Extension toi_category gefunden, die die Seitenkategorisierung erledigen könnte. Mit Hilfe einer facettierten Suche ließen sich nun die Suchergebnisse - wünschenswerterweise vor Ausführen der erweiterten Suche - auf die jeweiligen Kategorien einschränken. Eine Programmierung der Kategoriesuche als Hook zur Indexed_Search erschien mir bisher als sinnloser Aufwand, wo es doch SOLR mit der facettierten Suche gibt.

Jetzt hab ich mir jedoch SOLR genauer angeschaut. Hier stellt sich für mich nun die Frage, wie ich die mit Hilfe von toi_category definierten Kategorien als Suchfacetten in den SOLR-Index bringe bzw. dann auch entsprechend auslesen kann. Optimal dabei wäre, dass ich die möglichen Facetten im Suchformular nicht extra aus der Kategorieextension auslesen muss, sondern dass das ebenfalls durch SOLR erledigt wird.

Die erwähnte Extensiion 'toi_category' erstellt einen Kategoriebaum in Form von Seiten in der table 'pages' und vergibt diesen einen eigenen DokType. Über ein Auswahlfeld (ähnlich dem für das Hinzufügen von zB Bildern aus dem fileadmin-Ordner) können dann in den Seiteneigenschaften die jeweiligen Kategorien zugewiesen werden. Diese sollen dann über die Facettierung ausgelesen werden.

Grundsätzlich erfolgt die Definition des Index mit Hilfe der schema.xml. Hier ist mir jedoch nicht klar, wo die Daten nun wirklich herkommen. Kommen diese

a) aus den Seiten im Backend, oder
b) aus den jeweiligen Seiteninhalten im Backend, oder
c) aus der Ausgabe im Frontend, oder
d) aus allen diesen Bereichen, oder
e) aus einem oben nicht angeführten Bereich?

Ist es möglich, ein 'multipleValue'-Field aus den Seiteneigenschaften (!!) mit zu indizieren, wenn da nur ID's anderer Seiten verspeichert sind? Kann ich dem Indexer dann sagen, dass er nicht die ID, sondern deren Seitenname in den Index eintragen soll? Geht das überhaupt? Oder gibt es da eine bessere und einfachere Lösung?

Danke für jede Info!

Beste Grüße ...