lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dragan Jotanovic <dragan.jotano...@diosphere.com>
Subject Re: How to achive this kind of document ordering
Date Wed, 19 May 2010 09:38:30 GMT
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.jotanovic@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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message