2010-01-14 4 views
7

Ich überlege/arbeite an der Implementierung einer Suchmaschine für die verschiedenen Inhaltstypen unseres Unternehmens und versuche, meinen Kopf um Lucene zu wickeln (speziell die .net-Variante).Müssen Dokumente in Lucene dieselben Felder enthalten?

Im Moment ist meine primäre Frage, ob Dokumente ein Index die gleichen Felder enthalten müssen.

Zum Beispiel:

Document1:

  • Titel: "Ich habe ein Dokument, Baby bin"
  • Körper: "Hier sind einige wichtige Dinge"
  • Latitude: 26,12224
  • Longtitude: -65.23124
  • Marke: Toshiba

Document2:

  • Titel: "Ein weiteres Dokument von Me"
  • Körper: "Lorem ipsum und all that jazz"
  • Kategorie: Artikel
  • Autor: Sir Loin

... und so weiter

Antwort

14

Nichts in Lucene Kräfte Einheitlichkeit.

Wenn Sie in einem Feld mit dem Namen 'Fred' suchen und nicht alle Dokumente 'Fred' haben, findet die Suche die Freedless-Dokumente nicht.

+3

Du bist mein neuer Held. – Matt

0

Wenn Sie ein bestimmtes Feld indizieren möchten, I g Alle Dokumente müssen dieselben Felder haben.

+0

Das ist, was meine Intuition bis jetzt erzählt hat, aber ich konnte nichts finden, was konkret auf die eine oder andere Weise aussagt. – Matt

0

Es hängt alles davon ab, wie Sie Ihre Dokumente in Lucene indexiert haben. Alle Document s müssen zum Index hinzugefügt werden. Sie können IndexWriter verwenden oder schreiben Sie Ihre eigene Klasse, um das zu tun. Bevor Sie ein Dokument zum Index hinzufügen, sollten Sie es in Name-Value-Paaren aufteilen. Anschließend können Sie Lucene für diese Namenswerte über QueryParser abfragen. Die folgende Abfrage gibt beispielsweise alle Dokumente mit den Sätzen "Ich bin ein Dokument, Baby" im Titel und "Hier sind einige wichtige Dinge" im Text zurück.

title:("I'm a document, baby") body:("Here are some important things") 

Ich habe gerade ein einfaches Beispiel gezeigt, aber Sie können eine leistungsfähigere Suchabfrage auf viele verschiedene Arten erstellen.

Die Klassen, die ich erwähnt habe, stammen aus Java, aber .net sollte ähnlich sein.

Verwandte Themen