Hi All,
  I have overidden QueryParser's getFieldQuery() so that it returns a 
SpanNearQuery instead of a PhraseQuery.
 but that stopped the Highlighter working.  I added the following to 
QueryTermExtractor:


        private static final void getTerms(Query query, HashSet terms,boolean 
prohibited)
        {
                if (query instanceof BooleanQuery)
                        getTermsFromBooleanQuery((BooleanQuery) query, terms, 
prohibited);
                else
                        if (query instanceof PhraseQuery)
                                getTermsFromPhraseQuery((PhraseQuery) query, 
terms);
                        else
                                if (query instanceof TermQuery)
                                        getTermsFromTermQuery((TermQuery) 
query, terms);
        else
                    if(query instanceof SpanNearQuery)  // <<< new <<<<
                        getTermsFromSpanNearQuery((SpanNearQuery) query, terms);

// and 

    private static final void getTermsFromSpanNearQuery(SpanNearQuery query, 
HashSet terms){
        Collection queryTerms = query.getTerms();
        for(Iterator iterator = queryTerms.iterator(); iterator.hasNext();){
            // break it out for debugging.
            Term term = (Term) iterator.next();
            String text = term.text();
            terms.add(new WeightedTerm(query.getBoost(), text));

        }
    }

And that seemed to fix it.

Hope this helps,
Andrew

Andrew Boyd
Software Architect
Sun Certified J2EE Architect
B&B Technical Services Inc.
205.422.2557

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to