Hi all,
 
While attempting to use highlighter with lucene 2.3.2 to get the result similar 
to that of google response am getting the following error. 
 
Kindly give me a solution for this problem or provide me an alternate coding 
methodology if this s ultimately wrong. I couldnt find out where am missing.
 
 
 
Error: [as viewed through Netbeans 6.5.1]
--------
 
run:
Enter query: 
automatically
Searching for: automatically
1 total matching documents
1. d:\test\new.txt
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String 
index out of range: 23
        at java.lang.String.substring(String.java:1935)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:235)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestFragments(Highlighter.java:175)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestFragments(Highlighter.java:460)
        at lucenehighlighter.SearchFiles.main(SearchFiles.java:145)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)

 
Code:
--------
 
SimpleHTMLFormatter formatter = new SimpleHTMLFormatter( 
"<span class=\"highlight\">", "</span>"); 
Highlighter high= new Highlighter(formatter,new QueryScorer(query));
high.setTextFragmenter(new SimpleFragmenter(20));
for (int j = 0; j < hits.length(); j++) {
 String text = hits.doc(j).get("path");
  TokenStream tokenStream = analyzer.tokenStream("contents", new 
FileReader(text));
  String result = high.getBestFragments(tokenStream,text,5,"...");
  System.out.println("\t" + result);
}


      From cricket scores to your friends. Try the Yahoo! India Homepage! 
http://in.yahoo.com/trynew

Reply via email to