So, sorting should be exactly what you want. You want to sort by a particular field:
Hits hits = searcher.search(query, new Sort("popularity", true));
Does that do what you want? (the 'true' is to reverse the sort, so that you get descending popularity, which is probably what you want). In this example, the score would have no bearing whatsoever on the order of the Hits, only the "popularity" field in descending order, and document id when the popularity of documents are the same.
Where are you getting that sorting is only done on 100 matches by default? We should correct the documentation if it says something like that.
Erik
On Sep 22, 2004, at 6:59 AM, [EMAIL PROTECTED] wrote:
Thanks for the reply,
I've looked in to the search method that takes a Sort object as argument.
As I understand it the sorting is only done on the best matches (100 by
default)? I don't want the default score to have any impact at all. I want
to sort all hits on popularity not just the best matches.
/William
Actually what William should use is the new Sort facility to order results by a field. Doing this with a Similarity would be much trickier. Look at the IndexSearcher.sort() methods which take a Sort and follow the Javadocs from there. Let us know if you have any questions on sorting.
It would be best if you represent your 'popularity' field as an integer
(or at least numeric) since sorting by String uses more memory.
Erik
On Sep 22, 2004, at 4:52 AM, Otis Gospodnetic wrote:
You need your own Similarity implementation and you need to set it as shown in this javadoc: http://jakarta.apache.org/lucene/docs/api/org/apache/lucene/search/ Similarity.html
Otis
--- "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
Hi, I know this is probably a common question and I've found a couple of posts about it in the archive but none with a complete answer. If there is one please point me to it!
The question is that I want to discard the default scoring and implement my own. I want all the the hits to be sorted after popularity (a field) and not by anything else. How can I do this? What classes and methods do I have to change?
thanks, William
-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]