lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gabriele renzi <rff....@gmail.com>
Subject DisjunctionMaxQuery and custom Sort
Date Fri, 05 Mar 2010 09:13:52 GMT
Hi everyone,

In our search app we'd perform searches with a DisjunctionMaxQuery
with code like

  searcher.search(query, hits)

Now we'd like to add a custom sub-sort so that when the search returns
two documents with the same score they will be ordered by a custom
field (this is not a boost for two reasons: first,  we already use
boosting for other goals, second, we may like to add a third level of
boosting in the future)

I thought I could just change the former line to something like

  searcher.search(query, null, hits, new Sort(SortField.SCORE_FIELD,
new CustomSortField())

but I had unexpected results, so I dropped our custom SortField, and
tried the simple

  searcher.search(query, null, hits, new Sort(SortField.SCORE_FIELD))

which I though should have the same behaviour of our original code:
yet, a large part of our tests failed because it appears that the
results are not the same as above.

So my question is threefold:
1. is the last query really not functionally equivalent to the first?
2. if not, how would the equivalent be?
3. and how can I perform a sub-sorting of the results by relevance
first and my custom score field later?

FWIW I am using lucene 2.9.1, java 1.6, OSX 10.6. Thanks in advance
for any help.

-- 
blog en: http://www.riffraff.info
blog it: http://riffraff.blogsome.com

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message