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

Reply via email to