2 Stimmen

Sitecore gibt "Beliebte Suchanfragen" zurück, während Lucene Search verwendet wird?

Ich habe eine Anfrage, um eine Liste der beliebtesten Suchbegriffe zurückzugeben, die beim Durchsuchen einer Sitecore-Website verwendet werden.

Ich habe keine Ahnung, wie man diese Art von Funktion mit Sitecore implementiert oder ob Sitecore diese Art von Funktionalität bereits hat. Ich kann keine Dokumentation dazu finden.

Ich verwende derzeit die Suche basierend auf dem LuceneSearch-Modul (http://trac.sitecore.net/LuceneSearch), jedoch angepasst, um an eine ListView gebunden zu werden, für eine einfache Seitenwechselung.

Im Moment werde ich wahrscheinlich einfach eine eigenständige Funktion/Klasse erstellen, um eine XML-Datei oder ähnliches zu aktualisieren, es sei denn, jemand ist in der Lage, mich in die richtige Richtung zu führen...?

3voto

Alex Shyba Punkte 1202

Ich würde ehrlich gesagt OMS dafür verwenden - dafür ist es konzipiert. Keine Notwendigkeit für eine separate Datenbank. Registrieren Sie einfach die Suchvorgänge über die API mit OMS. Es gibt einen standardmäßigen Suchbericht. Es könnte einige Anpassungen erfordern, aber dies scheint die einfachste Lösung zu sein.

Schauen Sie hier für weitere Details.

0 Stimmen

Wahrscheinlich die einfachste Möglichkeit, aber das OMS-Modul erfordert Sitecore 6.x und ist meiner Meinung nach recht teuer. Aber für größere Lösungen in Sitecore 6.x++ ist dies ein einfacher Weg, um das Problem zu lösen.

0 Stimmen

Ich werde das überprüfen und sehen, ob OMS für dieses Projekt gerechtfertigt werden kann. Es scheint wirklich die beste Option zu sein. Vielen Dank.

1voto

Mark Cassidy Punkte 5770

Ich kenne keine Standardfunktionalität in Sitecore, die Ihnen dabei helfen würde, dies zu erreichen, daher werden Sie wahrscheinlich von Grund auf vorgehen müssen - es sei denn, jemand anderes hier kann auf ein Bundle verweisen :-)

Das Lösen dieses Problems lässt sich wirklich in zwei Aufgaben unterteilen

1) Sammeln von Suchbegriffsinformationen. Wenn ein Benutzer einen Suchbegriff in das Suchfeld eingibt, von dem ich annehme, dass Sie es haben; normalisieren Sie es und speichern es in einer SQL-Tabelle (im Wesentlichen eine Tabelle vom Typ [Begriff] [Anzahl]. Aktualisieren Sie den Zähler für Begriffe, die Sie bereits speichern.

Normalisieren bedeutet, es in Kleinbuchstaben umzuwandeln und so weiter - möglicherweise jeden Suchbegriff (Wort) aufzuspalten und einzeln zu speichern, wenn Ihre Lösung dies erfordert (wahrscheinlich nicht der Weg, den ich gehen würde)

2) Abrufen von Informationen in Echtzeit aus der Tabelle, basierend darauf, was der Benutzer im Suchfeld eingibt. Nehmen wir an, Sie möchten eine Art "amazon-ähnliche" - auch auf fast allen großen Suchmaschinen vorzufindende - automatische Vervollständigung. Ich implementiere diese normalerweise in einem Webservice, der dann von Ajax, JQuery oder einer beliebigen anderen Rich-Client-Implementierung aufgerufen wird, die Sie bevorzugen.

Was die Aktualisierung einer XML-Datei betrifft, denke ich, dass Sperrprobleme und Leistung diese Lösung zunichte machen würden; obwohl sie möglicherweise auf sehr kleiner Ebene funktionieren könnte.

Es tut mir leid, dass ich in meiner Antwort nicht konkreter sein kann, aber Ihre Frage ist sehr offen gehalten.

1voto

Mark Ursino Punkte 30709

Sehr interessante Frage. Eine Möglichkeit wäre, eine weitere Datenbank für diese Suchanfragen zu verwenden. Ein Einfügen in diese DB wäre nicht sehr schwierig und würde das Problem des Blockierens einer XML-Datei umgehen. Vielleicht die Suchanfrage in eine DB-Tabelle einfügen und dann die Top-Ergebnisse abrufen, indem man die obersten x Zeilen nach diesem Abfragefeld ordnet. Wie Mark Cassidy bereits gesagt hat, vielleicht die Daten vor dem Einfügen normalisieren.

Sie könnten diese Arbeit auf Ihrem Suchlayout (oder Unterlayout) isolieren, damit sie nur auf einem bestimmten Teil der Website und nicht auf jeder Seite ausgeführt wird.

0voto

AndrewThompson Punkte 361

Sitecore hat einen "Site-Suche" Report out of the box im Executive Insight Dashboard, der Ihnen eine Übersicht darüber gibt, welche Suchbegriffe die meisten Besuche und natürlich den Engagement-Wert generieren. Sie müssen es nur konfigurieren, indem Sie ein Page-Event auf der Suchseite registrieren und die Abfrage übergeben, ansonsten wüsste Sitecore nicht, welches Formularfeld eine Suche darstellt. Sehen Sie sich diesen Beitrag an, er erklärt es genauer. Weitere Informationen können Sie aus dem Analytics-Konfigurationsreferenzdokument von sdn herunterladen. http://sdn.sitecore.net/upload/sitecore6/65/engagement_analytics_configuration_reference_sc65-usletter.pdf Und vergessen Sie nicht, dass Sitecore die Berichte auf verschiedenen Ebenen zwischenspeichert, damit es während der Entwicklung nützlich sein kann zu wissen, wie man ein Cache-Update erzwingen kann. Ich spreche darüber in folgendem Blog-Beitrag: http://andytsitecore.blogspot.co.uk/2013/10/sitecore-dms-and-analytics.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X