I'm migrating code from Lucene 3.5 to 4.0.  I have the following code which is 
supposed to highlight text.  I get the exception InvalidTokenOffsetsException.  
I have no idea what that means.  I am using a custom analyzer which seems to 
work for searching/indexing, so I assume it will work here (even though it took 
a couple of "minor" changes to get it to compile in 4.0  This code used to work 
in 3.5.

Anyone have any ideas?

Scott

Code fragment:

        try
        {
            ctf = new CachingTokenFilter(myCustomAnalyzer
                    .tokenStream(MyFieldName, new StringReader(myText)));
        }
        catch (IOException e1)
        {
            s_oLog.error("Search:markCommon: Exception creating 
CachingTokenFilter: " +
                    e1.getMessage());
            return null;

        }
        String markedString;
        SimpleHTMLFormatter formatter;
        try
        {
            formatter = new SimpleHTMLFormatter(_zBeginHighlight,
                    _zEndHighlight);
            Scorer score = new QueryScorer(q);
            ht = new Highlighter(formatter, score);
            ht.setTextFragmenter(new NullFragmenter());
            markedString = ht.getBestFragment(ctf, myText);
        }
        catch (IOException e)
        {
            s_oLog.error("Search:markCommon: Unable to highlight string: "
                    + e.getMessage());
            return null;
        }
        catch(InvalidTokenOffsetsException e2)
        {
            s_oLog.error("Search:markCommon: Unable to highlight string2: "
                    + e2.getMessage());
            return null;
        }

Reply via email to