Faceted Search (solr) vs Gute alte Filterung über PHP?
Ich bin der Planung über die Einrichtung eines filter-system (verfeinern der Suche) in meinen E-Commerce-stores. Sie können sehen, ein Beispiel hier: http://www.bettymills.com/shop/product/find/Air+und+HVAC+Filter
Plattformen wie PrestaShop, OpenCart und Magento haben einen sogenannten Layered Navigation.
Meine Frage ist was ist der Unterschied zwischen der Layered Navigation in Plattformen wie Magento oder PrestaShop im Vergleich zu so etwas wie Solr oder Lucene für die Facetten-navigation.
Kann ein ähnliches Ergebnis erreicht werden, wenn nur über php und mysql?
Eine ausführliche Erklärung sehr dankbar.
InformationsquelleAutor der Frage Adil | 2011-08-31
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Layered Navigation == Facettierten Suche.
Sind Sie die gleiche Sache, aber Magento und al verwendet unterschiedliche Formulierungen, wahrscheinlich um fängig zu sein. Soweit ich weiß, Magento unterstützt sowohl die Solr facettierte Suche oder die MySQL ein. Der wesentliche Unterschied ist die Leistung.
Leistung ist der Haupt-trade-off.
Tun facettierte Suche in MySQL erfordert, dass Sie Tabellen verbinden, während Solr indiziert das Dokument Facetten automatisch für die Filterung. Sie können in der Regel erzielen Sie schnelle Reaktionszeiten mit Solr (<100ms für einen multi-Facetten-Suche, query) auf Durchschnittliche hardware. Während MySQL wird länger dauern, für die gleiche Suche, es kann optimiert werden, mit Indizes zu erreichen, ähnliche Reaktionszeiten.
Den Nachteil Solr ist, dass es erfordert, dass Sie konfigurieren, sichere und noch ein anderer Dienst auf dem server. Es kann auch ziemlich CPU-und Speicher-intensiv, je nach Ihrer Konfiguration (Tomcat, jetty, etc.).
Facettierte Suche in PHP/MySQL ist möglich und nicht so schwer wie Sie denken.
Müssen Sie eine bestimmte Datenbank-schema, aber es ist machbar. Hier ein einfaches Beispiel:
Produkt
Klassifizierung
product_classification
Also, sagen wir mal jemandes Suche nach
paint
Sie tun würde, so etwas wie:Dieser zurückkehren würde beide Einträge aus der
product
Tabelle.Sobald die Suche ausgeführt wurde, können Sie Holen die damit verbundenen Facetten (Filter) von Ihrem Ergebnis mit einer Abfrage wie diese:
Diese ' ll geben Sie etwas wie:
So, in Ihrer Ergebnismenge, wissen Sie, dass es gibt Produkte, deren Farbe sind
blue
undred
, dass das einzige material, das es aus istlatex
ist, und dass es gefunden werden kann, in Abteilungenhome
undpaint
.Sobald ein Benutzer eine Facette auswählen, ändern Sie einfach die original-Suchanfrage:
So, hier ist der Nutzer auf der Suche für keyword
paint
, und umfasst zwei Facetten: Facetteblue
für Farbe undhome
für die Abteilung. Diese ' ll geben Ihnen:So, zum Schluss. Obwohl es eine out-of-the-box in Solr, ist es möglich, die Implementierung in SQL ziemlich leicht.
InformationsquelleAutor der Antwort netcoder
Magento Enterprise Edition verfügt über eine Implementierung von Solr mit facettierten Suche. Noch müssen Sie " configure Solr index die richtigen Daten; d.h. Solr läuft auf Java auf einem host mit einer bestimmten port. Magento verbindet es durch eine gegebene url. Wenn Magento legt die facettierte Suche, es macht einen Wunsch zu Solr und verarbeitet die empfangenen xml-Daten in ein Formular auf dem frontend.
Den Unterschied würde man von der Geschwindigkeit. Fordern Solr ist sehr schnell. Wenn Sie über mehr als 100.000 Produkte in Ihrem shop und möchten schnelle Antworten auf Suchanfragen, die Sie verwenden können, Solr. Aber immer noch, wenn Sie einen separaten server für die Magento-Datenbank, die einen großen Speicher, Sie können auch einfach verwenden Magento built-in-Mysql-basierte facettierte Suche. Wenn Sie müssen nicht Geld ausgeben, auf Magento EE, die Sie verwenden können,das solr-Implementierung. Aber ich habe keine Erfahrung mit dieser.
InformationsquelleAutor der Antwort y_a_v_a
aus der solr-box, die Sie verwenden können, berechnet Facette, Palette, wählen Sie eine Facette oder ausschließen, erklären, wenn eine Facette, mono bewertet oder multi geschätzt, mit einer sehr niedrigen cpu - /ram Kosten
Auf der anderen Seite, dauert es einige Zeit, um parameter und sichern Sie die solr-installation, es dauert auch einige Zeit, um zu kriechen Ihre Daten.
InformationsquelleAutor der Antwort flo850
Können Sie erstellt facettierte Suche mit nur PHP und MySQL, Drupal Facettierte Suche ist ein gutes Beispiel. Aber wenn du schon verwenden, Solr, Sie bekommen facettierte Suche kostenlos inbegriffen.
InformationsquelleAutor der Antwort Karl-Bjørnar Øie