Newegg verwendet Endeca, und sie waren wahrscheinlich einer der früheren Kunden von Endeca. Rückblickend könnte Endeca einen großen Beitrag zu ihrem Erfolg geleistet haben. Die facettierte Navigation funktioniert sehr gut auf komplexen elektronischen Geräten wie Computerteilen.
Es gibt ein paar Dinge in facettierte Navigation zu berücksichtigen:
1) Haben Sie nur facettierte Navigation auf Anfragen Kategorie-driven wollen, oder wollen Sie es auch auf die Suche arbeiten? Tatsächlich sind Kategorien eine hierarchische Facette.
2) Führt das de-normalisierte invertierte Indexmodell von Solr zu Problemen?
Wenn die Antwort auf 1) wahr ist - wahrscheinlich - werden Sie einige invertierte Indizes benötigen. Umgekehrte Indizes sind so ziemlich die einzige Möglichkeit, die Stichwortsuche durchzuführen. Sie werden auch mit einigen Vorbehalten konfrontiert.
Grundsätzlich können Sie jede Facette als einen invertierten Index betrachten (in der Tat könnte die Stichwortsuche als eine spezielle Facette mit Ranking-Funktionen betrachtet werden). Um die Anzahl zu berechnen, müssten Sie sich mit der aktuellen Abfrage überschneiden und mit allen anderen Facettenwerten filtern. Dieses Modell kann jedoch zu Problemen führen, wenn Sie sparse Produktgruppen darstellen müssen (siehe 2).
Wenn die Antwort auf 2) wahr ist, könnte es helfen, mehr über Aspekte in Bezug auf OLAP nachzudenken. Ich weiß nicht, ob invertierte Indizes komplexe Beziehungen ohne Abstraktionen handhaben können.
Es ist fair zu betrachten und zu implementieren Facettensuche/nav als eine Mischung aus Volltext (in der Regel als invertierter Index implementiert) und/oder OLAP.
Ich bin mir ziemlich sicher, dass Sie facettieren mit einem Spaltenspeicher abziehen können, aber Sie müssten immer noch einen invertierten Index zur Verfügung haben, mit dem Sie sich zusammenschließen können, wenn Sie eine Stichwortsuche wünschen.
@ Dan Grossman:
Es könnte so scheinen, aber -
Dachten Sie, für einen Moment, wie viele Kombinationen gibt Facetten sind? Sie können so viele Seiten nicht zwischenspeichern. Es gibt wahrscheinlich mehr Kombinationen auf Newegg.com als Sterne in Ihrem Himmel.
Add in mehrere Auswahl und es ist noch schlimmer. Spiel ist aus.
Sie können nur einige Fälle wie ungefiltert und häufig gefiltert zwischenspeichern. Wenn Sie versuchen, Newegg.com zu spinnen, ohne die Rekursionshöhe einzuschränken, werden Sie die Spinne töten. Facettierte Seiten verursachen aus diesem Grund generell Probleme für Suchmaschinen. Siehe http://www.searchmarketingstandard.com/facets-navigational-seo-powerhouse-part
Danke für die Antwort. Ich dachte mir, dass sie die Datenbank nicht direkt abfragen würden. Ich habe schon Sphinx benutzt, aber ich kann immer noch nicht sehen, wie sie es machen, ohne für jede Anfrage 100 Mal (willkürlich geschätzt) zu fragen. Was vermisse ich? –
Sphinx ist schnell für Volltext, in Bezug auf die Facettensuche, ist möglich, erfordert aber mehr Konfiguration und Tests. Sie können wahrscheinlich alle facet eine GROUP in mysql behandeln, und sphinx macht es sehr schnell. – ajreal
Also, wenn ich Sie richtig verstehe, führen sie eine GROUP BY auf jedem Attribut-Set und verwenden eine Aggregat-Zählfunktion, um die Anzahl der Produkte in jedem Attribut zu erhalten? –