Lucene

Status
Nicht offen für weitere Antworten.

Viperb0y

Mitglied
Hallo,

habe eine kleine Frage, kennt sich evtl. hier jemand mit Lucene aus? Bin jetzt soweit dass ich zumindest schonmal den index erstellen und durchsuchen kann. Aber ich bräuchte etwas erweitertes: Und zawr dass ich nicht solch ein ergebnis bekomme:

Code:
C:\>java -jar Lucene_fat.jar -index indexs
Query: test
Searching for: test
1 total matching documents
1. C:\lucene-2.0.0\src\demo\org\apache\lucene\demo\html\Test.java

sondern in etwa solch eins:

Code:
C:\>java -jar Lucene_fat.jar -index indexs
Query: test
Searching for: test
2 total matching documents
1. C:\lucene-2.0.0\src\demo\org\apache\lucene\demo\html\Test.java
	BLABLABLABLABLABLABLABLA [hervorgehoben]test[/hervorgehoben] BLABLABLABLABLABLABLABLA

2. C:\lucene-2.0.0\src\demo\org\apache\lucene\demo\html\Datei.java
	BLUBBLUBBBLUBBLUBBBLUBBLUBB  [hervorgehoben]test[/hervorgehoben] BLUBBLUBBBLUBBLUBB BLUBBLUBB

So in etwa wie google das hat. Ist sowas mit Lucene überhaupt möglich? Ich weiß nur das es in Lucene irgendwas mit highligther gibt, aber das hab ich nicht verstanden :(
 
L

Lucenee

Gast
Hallo,

habe das selbe Problem, hat keiner dafür eine Lösung?
 

vogella

Bekanntes Mitglied
Hallo,

ja mit Lucene kannst Du die Ergebnisse hervorheben.

Wenn Du Dir Lucene herunterlädst, dann findest Du ein lucene-highlighter...jar. Das kannst Du benutzen.

Z.B. Coding mit das HTML zu codieren (z.B. für SwingControls, die HTML darstellen), ist ein bißchen aus dem Zusammenhang gerießen. Das Coding steht bei mir in einem eingenen Iterator, der wiederum einen eigenen Datentyp füllt.

Code:
QueryParser parser = new QueryParser(CONTENT, analyzer);
		Query query = parser.parse(querystring);
		hits = searcher.search(query);
		highlighter = new Highlighter(new SimpleHTMLFormatter(),
				new QueryScorer(query));

// Zeug um den ersten Hit zu finden
// der [b]..[/b] ist der interessante Teil.

hitpos = 0;
try {
			Document doc = hits.doc(hitpos);
			hitpos++;
			TokenStream tokenStream = analyzer.tokenStream(CONTENT,
					new StringReader(doc.get(CONTENT)));

			String result = highlighter.getBestFragments(tokenStream, doc
					.get(CONTENT), NUM_HIGHLIGHTS, "[b]..[/b]");
			return new SearchResult(doc, result, hitpos);
		} catch (IOException e) {
			throw new RuntimeException(e); // no need to continue
		}

Viele Grüße, Lars
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben