# Lucene



## Viperb0y (22. Jan 2007)

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:


```
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:


```
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


----------



## Lucenee (8. Mrz 2007)

Hallo,

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


----------



## AlArenal (8. Mrz 2007)

http://www.manning.com/hatcher2/

Habs letztes Jahr als PDF gekauft, ausgedruckt und - in die Ecke gestellt, weil ichs noch nicht brauchte


----------



## vogella (19. Jun 2007)

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. 


```
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


----------

