Thanks Frank,
the idea of preparing set of structured lists is what I initially thought I will have to do, but I'm afraid there will be serious performance penalty, because I would have to traverse the documents until I find all distinct values of SortFieldB. But I guess there is no other way. Could you point me to the source code of oal.search.TopFieldCollector so I could take a look?

Dragan


On 5/19/2010 9:53 PM, Frank Wesemann wrote:
Hi Dragan,

First, all results are ordered by SortFieldA in ascending order. Than
by SortFieldB so that all documents with the same SortFieldA value are
ordered in "levels" structure. Each level consists of documents with
distinct SortFieldB values.
So, the requirenment is to show documents from first level first, than
second level, and so on.
It will not be possible to order documents while indexing, so I will
need search time ordering.
Is this achievable with lucene? What would be the best approach to
solve this without huge performance impact on multimillion documents
index?
You might want to have a look at oal.search.TopFieldCollector and the
accompanied Comparator Classes
For a similar approach ( I had to sort by the quantity on a certain
Field ) I borrowed a lot of the idea of these classes.
  From the basic principles therein I derived DocumentComparators, which
compare not only FieldValues but whole documents.
The outcome is not one sorted list, but a structure of lists which I
combine in nested
while( list<SortFieldA>.hasNext() ) {
     overallResult.add ( listOfSortFieldA.get( listOfSortFieldB).next() )
}
loops.

Performance is ofcourse affected by numbers of documents you want to return.

--
mit freundlichem Gruß,

Frank Wesemann
Fotofinder GmbH         USt-IdNr. DE812854514
Software Entwicklung    Web: http://www.fotofinder.com/
Potsdamer Str. 96       Tel: +49 30 25 79 28 90
10785 Berlin            Fax: +49 30 25 79 28 999

Sitz: Berlin
Amtsgericht Berlin Charlottenburg (HRB 73099)
Geschäftsführer: Ali Paczensky




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



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

Reply via email to