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]