*Hi all,*
**
*I wanted to use to following code to highlight the whole sentence with
"\"something\"~n" to be parsed.*
**
*The QueryParser part worked well, but when integrated with Highlighter, it
ended up with exception. *
**
*Does anyone have any clue as I'm investigating this.*
**
**
*Thanks,*
**



Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/lucene/index/memory/MemoryIndex

      at
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getReaderForField(
*WeightedSpanTermExtractor.java:361*)

      at
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extractWeightedSpanTerms(
*WeightedSpanTermExtractor.java:282*)

      at
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extract(*
WeightedSpanTermExtractor.java:149*)

      at
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getWeightedSpanTerms(
*WeightedSpanTermExtractor.java:414*)

      at org.apache.lucene.search.highlight.QueryScorer.initExtractor(*
QueryScorer.java:216*)

      at org.apache.lucene.search.highlight.QueryScorer.init(*
QueryScorer.java:184*)

      at
org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(*
Highlighter.java:226*)

     at org.apache.lucene.search.highlight.Highlighter.getBestFragments(*
Highlighter.java:184*)

     at org.apache.lucene.search.highlight.Highlighter.getBestFragments(*
Highlighter.java:488*)

      at Hightlight.main(*Hightlight.java:182*)


**
*public* *class* Hightlight {

  *private* *static* *final* String *text* =

    "Giving end users some context around hits from their searches is
friendly and, more important, useful. An useful example is friendly Google
search context.";



  *private* *static* *final* String[] *stopwords* = {};

  *private* *static* IndexSearcher *searcher*;

  *public* *static* *void* main(String[] args) *throws* Exception {



    String filename = args[0];



    String searchText = "\"Giving and\"~11";
#1

    QueryParser parser = *new* QueryParser("f", *new*

            StandardAnalyzer(*stopwords*));

    Query query = parser.parse(searchText);



    SimpleHTMLFormatter formatter =

      *new* SimpleHTMLFormatter("<span class=\"highlight\">",

                              "</span>");



    TokenStream tokens = *new* StandardAnalyzer(*stopwords*)

        .tokenStream("f", *new* StringReader(*text*));



    QueryScorer scorer = *new* QueryScorer(query, "f");



    Highlighter highlighter = *new* Highlighter(formatter, scorer);

    highlighter.setTextFragmenter(

                  *new* NullFragmenter());



    String result =

        highlighter.getBestFragments(tokens, *text*, 3, "...");



    FileWriter writer = *new* FileWriter(filename);

    writer.write("<html>");

    writer.write("<style>\n" +

        ".highlight {\n" +

        " background: yellow;\n" +

        "}\n" +

        "</style>");

    writer.write("<body>");

    writer.write(result);

    writer.write("</body></html>");

    writer.close();

  }

}

Reply via email to