Hallo,
ich arbeite gerade mit Lucene und stoße auf folgendes Problem.
In meinem Java-Programm soll der User eine Datei(speziell html-Datei) auswählen und danach ein Suchstring eingeben.
Soweit funktioniert auch alles (Auswahl der Datei, Indizierung ...), nur, dass mir als Ergebnis immer nur bei hits.length 1 angezeigt wird (sofern Lucene überhaupt etwas findet).
Kurzer Einblick, wie ich es realisiert habeschematisch!)
Als Hilfswerkzeug benutze ich LUKE, um mir den Index anzeigen zu lassen. Dort stehen - wie erwartet - 2 Felder drin (inhalt und pfad). Und dann die ganzen einzelnen Wörter aus inhalt.
==> Nun meine Vermutung. Muss ich, wenn ich nicht nur 1 Ergebnis haben will (Lucene: Ja, Deine Suchanfrage kommt im Document vor) jedes Wort/Zeile in ein NEUES Dokument schreiben?
Also mittels readline() alle Zeilen einlesen und seperate Documents erstellen?
Danke,
Fulk.
ich arbeite gerade mit Lucene und stoße auf folgendes Problem.
In meinem Java-Programm soll der User eine Datei(speziell html-Datei) auswählen und danach ein Suchstring eingeben.
Soweit funktioniert auch alles (Auswahl der Datei, Indizierung ...), nur, dass mir als Ergebnis immer nur bei hits.length 1 angezeigt wird (sofern Lucene überhaupt etwas findet).
Kurzer Einblick, wie ich es realisiert habeschematisch!)
Code:
FileReader fr = new FileReader("C:\\Index\\");
Document doc = new Document();
doc.add(new Field("inhalt", fr);
doc.add(new Field("pfad", fileFile.getAbsolutePath(),Field.Store.YES, Field.Index.UN_TOKENIZED));
...
writer.addDocument(doc);
Als Hilfswerkzeug benutze ich LUKE, um mir den Index anzeigen zu lassen. Dort stehen - wie erwartet - 2 Felder drin (inhalt und pfad). Und dann die ganzen einzelnen Wörter aus inhalt.
==> Nun meine Vermutung. Muss ich, wenn ich nicht nur 1 Ergebnis haben will (Lucene: Ja, Deine Suchanfrage kommt im Document vor) jedes Wort/Zeile in ein NEUES Dokument schreiben?
Also mittels readline() alle Zeilen einlesen und seperate Documents erstellen?
Danke,
Fulk.