2010-11-19 4 views
1

Wenn Sie zu newegg.com gehen (nur ein Beispiel), werden Sie beim Durchsuchen der Produkte die Anzahl der Elemente neben den einzelnen Produktattributen sehen linke Seitenleiste.So erhalten Sie die Gesamtanzahl aller Produktattribute/Filter wie newegg

Mit so vielen Attributen bei einigen Artikeln und so vielen verschiedenen Konfigurationen von Produktfiltern, wie berechnen sie alle diese Summen so schnell?

Antwort

2

Für newegg.com, sie sind eine facettierte Navigationstechnologie von endeca

In aller Kürze zur Verfügung gestellt verwenden, endeca tatsächlich die Daten in XML/CSV benutzen, oder direkt Daten abrufen aus jeder Datenbank (nicht nur mysql begrenzt) und Ähnlichkeit und Gruppe das Ergebnis in ihr eigenes Format

Endeca ist nicht frei, die Open-Source-Alternative wie sphinx oder lucene solr

+0

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? –

+0

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

+0

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? –

0

Sie berechnen nicht wissen, dass sie sie schnell berechnen. Du weißt nur, dass sie sie schnell rendern. Sie könnten Stunden damit verbringen, diese Summen zu berechnen und ihre Seiten zu rendern, die Ergebnisse zwischenzuspeichern und diese statischen Dateien so lange zu speichern, bis sie die Daten aktualisieren wollen.

+0

Ich würde das kaufen (und das könnte es sehr wohl sein) aber Magento kommt mit der gleichen Funktion, also nahm ich an, dass es in Echtzeit (oder zumindest in Echtzeit an dem Punkt, an dem die Seite zwischengespeichert wurde) passiert. –

+0

Leider nicht, führen sie Live-Abfrage zu endeca. Auch hier ist ENDECA NICHT frei. – ajreal

+0

Das ist nebensächlich. Newegg war nur ein Beispiel. Ich weise darauf hin, dass der Kauf von Endeca nicht die einzige Möglichkeit ist, etwas Komplexes schnell zu rendern - Sie können es langsam berechnen und das Ergebnis zwischenspeichern. –

1

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

+0

Ausgezeichneter Ablauf. Vielen Dank. –

Verwandte Themen