Ok, thanks Erik. So probably my code may explain it:
-------------------------------------------------------------------------------------------------------------------------------
public void searchQuery(String q, float rel, String indexDir){
String excerpt = "";
try{
Searcher searcher = new IndexSearcher(indexDir);
Analyzer analyzer = new StandardAnalyzer();
Term searchTerm = new Term("text", q);
FuzzyQuery fuzzyQuery = new FuzzyQuery(searchTerm, rel/100);
System.out.println("Searching for: " + q);
Hits hits = searcher.search(fuzzyQuery);
System.out.println(hits.length() + " total matching documents");
for (int i = 0; i < hits.length(); i++){
Document doc = hits.doc(i);
String path = doc.get("path");
SearchTextHighlighter processText =
new SearchTextHighlighter();
// excerpt =
// processText.getExcerpt(doc.get("text"),
q, fuzzyQuery);
if (path != null){
System.out.println(i + ".-------");
System.out.println(" Path: " +
path);
System.out.println(" Score: " +
hits.score(i));
System.out.println(" DocID: " +
doc.get("docID"));
System.out.println(" Snippet: " +
excerpt);
System.out.println();
}else{
String url = doc.get("url");
if (url != null){
System.out.println(i + ". " + url);
System.out.println(" - " + doc.get("title"));
System.out.println("Score: " + hits.score(i));
}else{
System.out.println(i +
". " +
"No path nor URL for this document");
}
}
}
searcher.close();
}catch (Exception e){
e.printStackTrace();
}
}
-------------------------------------------------------------------------------------------------------------------------------
Method getExcerpt does the following:
-------------------------------------------------------------------------------------------------------------------------------
public String getExcerpt(String textToCompute, String queryText, Query
query) {
String excerpt = "";
String vTemp = "";
Analyzer analyzer = new StandardAnalyzer();
Highlighter highlighter = new Highlighter(new QueryScorer(query));
if(textToCompute != null ){
TokenStream tokenStream = analyzer.tokenStream("text",
new StringReader(textToCompute));
try {
vTemp = highlighter.getBestFragment(tokenStream, textToCompute);
excerpt = vTemp.replaceAll("" + queryText + "", queryText);
}
catch (IOException ex) {
}
}
return excerpt;
}
-------------------------------------------------------------------------------------------------------------------------------
--
View this message in context:
http://www.nabble.com/highlighting---fuzzy-search-t1392775.html#a3743994
Sent from the Lucene - Java Users forum at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]