Thanks for trying to help, but that is not the answer I was looking for.
The requirenment is a bit more specific. When sorting by second field, I don't want to sort it as A,A,A,B,B,C,C but A,B,C,A,B,C,A. I'm not sure even if this is possible using the Sort API. Maybe custom scoring or document boosting or some other approach would be more suitable?


On 5/19/2010 1:12 AM, Erick Erickson wrote:
I just skimmed your message, but Lucene provides
for multiple sorts. You can construct a Sort object
from an arbitrary number of fields, and any documents
that all sort equally for fields 1..k will be resolved
by considering field k+1.

The performance impact when searching is mostly
upon the very first sort when the caches are filled.
If you have a HUGE number of unique values for
a sort field, that may have heavy memory demands.

As I said, I just skimmed your message, so if I'm off
base let me know...

HTH
Erick

On Tue, May 18, 2010 at 12:01 PM, Dragan Jotanovic<
dragan.jotano...@diosphere.com>  wrote:

|Hi, I need to sort results by two fields. First one is numeric and sorting
should be in ascending order.
Second one should be ordered in a "levels" structure.
Here is the example:

Unsorted:
DocId      SortFieldA          SortFieldB
  1        101A
  2        102        B
  3        102        A   |
|   4        101        C
||   5        102        B|
|   6        101        A   |
|   7        101        B|
|   8        101        C|
|   9        101        B|
|  10        101        A|



Sorted:
|DocId      SortFieldA          SortFieldB
  1        101A   |
|   7        101        B|
|   4        101        C|
|   6        101        A|
|   9        101        B|
|   8        101        C|
|  10        101        A|
|   ||3        102        A|||||
|   2        102        B||
||   5        102        B||||

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?
|




---------------------------------------------------------------------
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