For anyone who comes across this topic in the future, I "solved" the problem 
this way: by agreement with the stakeholders, on the presumption that no one 
would look at more than 5000 records, I modified my search code so that, if the 
user selected to sort by the name, I set the row count to return 
(query.setRows) to 5000. I then put all the result records into a list, sort 
it, then, depending on what page they're on, extract that subset of the 5000 
and return it.

There is a small performance hit on initial searching for common names (e.g. 
Smith, Jones, etc.), but the performance is still far more acceptable than the 
legacy system Solr is meant to replace (a few seconds as opposed to twenty(!) 
minutes).

Most certainly there are better ways, but this one worked for me, and wanted to 
make sure it was added to the pool of options for anyone who comes across this 
problem in the future.

Thanks to everyone who offered suggestions!

Ron

-----Original Message-----
From: Jonathan Rochkind [mailto:rochk...@jhu.edu]
Sent: Wednesday, August 03, 2011 11:36 AM
To: solr-user@lucene.apache.org
Cc: Olson, Ron
Subject: Re: Strategies for sorting by array, when you can't sort by array?

Not so much that it's a corner case in the sense of being unusual
neccesarily (I'm not sure), it's just something that fundamentally
doesn't fit well into lucene's architecture.

I'm not sure that filing a JIRA will be much use, it's really unclear
how one would get lucene to do this, it would be signficant work to do,
and it's unlikely any Solr developer is going to decide to spend
signficant time on it unless they need it for their own clients.

On 8/3/2011 11:40 AM, Olson, Ron wrote:
> *Sigh*...I had thought maybe reversing it would work, but that would require 
> creating a whole new index, on a separate core, as the existing index is used 
> for other purposes. Plus, given the volume of data, that would be a big deal, 
> update-wise. What would be better would be to remove that particular sort 
> option-button on the webpage. ;)
>
> I'll create a Jira issue, but in the meanwhile I'll have to come up with 
> something else. I guess I didn't realize how much of a "corner case" this 
> problem is. :)
>
> Thanks for the suggestions!
>
> Ron
>
> -----Original Message-----
> From: Smiley, David W. [mailto:dsmi...@mitre.org]
> Sent: Wednesday, August 03, 2011 10:26 AM
> To: solr-user@lucene.apache.org
> Subject: Re: Strategies for sorting by array, when you can't sort by array?
>
> Hi Ron.
> This is an interesting problem you have. One idea would be to create an index 
> with the entity relationship going in the other direction.  So instead of one 
> to many, go many to one.  You would end up with multiple documents with 
> varying names but repeated parent entity information -- perhaps simply using 
> just an ID which is used as a lookup. Do a search on this name field, sorting 
> by a non-tokenized variant of the name field. Use Result-Grouping to 
> consolidate multiple matches of a name to the same parent document. This 
> whole idea might very well be academic since duplicating all the parent 
> entity information for searching on that too might be a bit much than you 
> care to bother with. And I don't think Solr 4's join feature addresses this 
> use case. In the end, I think Solr could be modified to support this, with 
> some work. It would make a good feature request in JIRA.
>
> ~ David Smiley
>
> On Aug 3, 2011, at 10:39 AM, Olson, Ron wrote:
>
>> Hi all-
>>
>> Well, this is a problem. I have a list of names as a multi-valued field and 
>> I am searching on this field and need to return the results sorted. I know 
>> from searching and reading the documentation (and getting the error) that 
>> sorting on a multi-valued field isn't possible. Okay, so, what I haven't 
>> found is any real good solution/workaround to the problem. I was wondering 
>> what strategies others have done to overcome this particular situation; 
>> collapsing the individual names into a single field with copyField doesn't 
>> work because the name searched may not be the first name in the field.
>>
>> Thanks for any hints/tips/tricks.
>>
>> Ron
>>
>> DISCLAIMER: This electronic message, including any attachments, files or 
>> documents, is intended only for the addressee and may contain CONFIDENTIAL, 
>> PROPRIETARY or LEGALLY PRIVILEGED information.  If you are not the intended 
>> recipient, you are hereby notified that any use, disclosure, copying or 
>> distribution of this message or any of the information included in or with 
>> it is  unauthorized and strictly prohibited.  If you have received this 
>> message in error, please notify the sender immediately by reply e-mail and 
>> permanently delete and destroy this message and its attachments, along with 
>> any copies thereof. This message does not create any contractual obligation 
>> on behalf of the sender or Law Bulletin Publishing Company.
>> Thank you.
>
>
> DISCLAIMER: This electronic message, including any attachments, files or 
> documents, is intended only for the addressee and may contain CONFIDENTIAL, 
> PROPRIETARY or LEGALLY PRIVILEGED information.  If you are not the intended 
> recipient, you are hereby notified that any use, disclosure, copying or 
> distribution of this message or any of the information included in or with it 
> is  unauthorized and strictly prohibited.  If you have received this message 
> in error, please notify the sender immediately by reply e-mail and 
> permanently delete and destroy this message and its attachments, along with 
> any copies thereof. This message does not create any contractual obligation 
> on behalf of the sender or Law Bulletin Publishing Company.
> Thank you.
>


DISCLAIMER: This electronic message, including any attachments, files or 
documents, is intended only for the addressee and may contain CONFIDENTIAL, 
PROPRIETARY or LEGALLY PRIVILEGED information.  If you are not the intended 
recipient, you are hereby notified that any use, disclosure, copying or 
distribution of this message or any of the information included in or with it 
is  unauthorized and strictly prohibited.  If you have received this message in 
error, please notify the sender immediately by reply e-mail and permanently 
delete and destroy this message and its attachments, along with any copies 
thereof. This message does not create any contractual obligation on behalf of 
the sender or Law Bulletin Publishing Company.
Thank you.

Reply via email to