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