Halten von Abfragestatistiken mit Lucene

8

Ich entwickle eine Suchkomponente einer Webanwendung mit Lucene. Ich möchte die Benutzerabfragen in einem Index speichern und sie dazu verwenden, alternative Abfragen an Benutzer vorzuschlagen und Abfragestatistiken (meist verwendete Abfragen, Abfragen mit der höchsten Punktzahl usw.) beizubehalten.

Um diese Daten für alternative Suchanfragen zu verwenden, würde ich die Abfragen analysieren, um zu sehen, welche Begriffe am häufigsten miteinander verwendet werden, und daraus einen Vorschlag für den Benutzer erstellen.

Aber ich kann nicht herausfinden, in welcher Form die Daten indexiert werden. Ich dachte daran, die Abfragen einfach in den Index einzufügen, aber auf diese Weise könnte es viele redundante Daten geben, da viele Dokumente im Index den gleichen Inhalt hätten. Hat jemand irgendwelche Ideen über die Art, wie dies erreicht werden kann?

Danke für die Hilfe.

    
jbradaric 25.11.2010, 14:13
quelle

2 Antworten

1
  

"Ich dachte daran, die Abfragen einfach in den Index einzufügen, aber auf diese Weise könnte es viele redundante Daten geben, da viele Dokumente im Index denselben Inhalt haben würden"

Sie können an Lucene sagen, dass Sie den Dokumentinhalt nicht speichern sollen, was bedeutet, dass der prinzipielle Overhead entfällt seien Sie die eindeutigen Begriffe und der Index selbst. Daher ist es möglicherweise kein großer Aufwand, jede Abfrage als ein eindeutiges Dokument zu speichern ... auf diese Weise werden Sie keine Informationen wegwerfen.

    
Joel 25.11.2010 15:19
quelle
1

Zunächst sollten Sie die Abfragen getrennt vom vorhandenen Index speichern. Das Problem besteht nicht in redundanten Daten, sondern in der "Verwässerung" Ihres Indexes. Wenn Sie die Abfragen im selben Index speichern, kann dies die Relevanz Ihrer Suchanfragen beeinträchtigen. Einige Optionen dafür sind:

  • Verwenden Sie einen separaten Lucene-Index.
  • Verwenden Sie Solr mit zwei separaten Kerne , einer für die Dokumente und der andere für die Abfragen.
  • Verwenden Sie ein Abfrageprotokoll. Speichern Sie die Bewertungen mit den Abfragen. Erstellen Sie Abfragestatistiken mithilfe von Postprocessing. Da es sich um eine Webanwendung handelt, können Sie wahrscheinlich einen Servlet-Container wie Tomcat verwenden.

Zweitens: Vorschläge aus beliebten Abfragen automatisch vorschlagen Verwenden von EdgeNGrams schlägt eine alternative Implementierung des Abfragevorschlags mit Solr vor.

    
Yuval F 25.11.2010 21:21
quelle

Tags und Links