Hi, > I think > BooleanQuery bq = new BooleanQuery(false); doesn't quite accomplish the > desired "name IN (dick, rich)" scoring behavior. This is because (name:dick | > name:rich) with coord=false would score the 'document' "Dick Rich" higher > than "Rich" because the former has two term matches and the latter only one. > In contrast, I think the desire is that one and only one of the terms in the > document match those in the BooleanQuery so that "Rich" would score higher > than "Dick Rich", given document length normalization. It's almost like a desire > for BooleanQuery bq = new BooleanQuery(false); > bq.set*Maximum*NumberShouldMatch(1);
I that case DisjunctionMaxQuery is the way to go (it will only count the hit with highest score and not add scores (coord or not coord doesn't matter here). --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org