DisjunctionMaxQuery may be one you are looking for. http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/DisjunctionMaxQuery.html *This is useful when searching for a word in multiple fields with different boost factors (so that the fields cannot be combined equivalently into a single search field). We want the primary score to be the one associated with the highest boost, not the sum of the field scores (as BooleanQuery would give)*
Thanks & Regards Umesh On Mon, Jan 24, 2011 at 2:09 PM, Dmytro Barabash <d.barab...@gmail.com> wrote: > Hi! > My index contains a few (really 7) fields and I need to search by all > of them. I use BooleanQuery and seven TermQueries added to this one. > Problem: result must to be sorted by max(field.boost), not by Lucene’s > default formula. > I think, for this I need to implement MySimilarity (it will simply > return 1.0 from all methods – empty similarity), MyBooleanQuery (and > MyBooleanWeight, and MyBooleanScorer), MyTermQuery (and MyTermWeight, > and MyTermScorer), and at last MyCollector. Collector should be > overridden because at this point possible change default summation to > max(). > Maybe I was mistaken and there is more straightforward way to realize > such behavior? > Thanks in advance! > Dmytro > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > > -- --- Thanks & Regards Umesh Prasad