Re: conditional sorting

2009-10-06 Thread Chris Hostetter


: I tried to simplify the problem, but the point is that I could have 
: really: complex requirements. For instance, if in the first 5 results 
: none are older than one year, use sort by X, otherwise sort by Y.

First 5 in what order? X? Y or something else?

: So, the question is, is there a way to make Solr recognize complex
: situations and apply different sorting criterion.

your question may seem simple to you, but unless you codify all the 
examples of what you consider a complex situation and how you expect 
those to be specified at run time, it's pretty much imposisble to give you 
an answer as to what the best way to achieve your goal is.

the simplest answer based on the information available: if you can express 
your requirements in java, and put them in a custom Search Component, then 
Solr can do it.


-Hoss



conditional sorting

2009-10-02 Thread Bojan Šmid
Hi all,

I need to perform sorting of my query hits by different criterion depending
on the number of hits. For instance, if there are  10 hits, sort by
date_entered, otherwise, sort by popularity.

Does anyone know if there is a way to do that with a single query, or I'll
have to send another query with desired sort criterion after I inspect
number of hits on my client?

Thx


Re: conditional sorting

2009-10-02 Thread Uri Boness
If the threshold is only 10, why can't you always sort by popularity and 
if the result set is 10 then resort on the client side based on 
date_entered?


Uri

Bojan Šmid wrote:

Hi all,

I need to perform sorting of my query hits by different criterion depending
on the number of hits. For instance, if there are  10 hits, sort by
date_entered, otherwise, sort by popularity.

Does anyone know if there is a way to do that with a single query, or I'll
have to send another query with desired sort criterion after I inspect
number of hits on my client?

Thx

  


Re: conditional sorting

2009-10-02 Thread Bojan Šmid
I tried to simplify the problem, but the point is that I could have really
complex requirements. For instance, if in the first 5 results none are
older than one year, use sort by X, otherwise sort by Y.

So, the question is, is there a way to make Solr recognize complex
situations and apply different sorting criterion.

Bojan


On Fri, Oct 2, 2009 at 4:22 PM, Uri Boness ubon...@gmail.com wrote:

 If the threshold is only 10, why can't you always sort by popularity and if
 the result set is 10 then resort on the client side based on date_entered?

 Uri


 Bojan Šmid wrote:

 Hi all,

 I need to perform sorting of my query hits by different criterion
 depending
 on the number of hits. For instance, if there are  10 hits, sort by
 date_entered, otherwise, sort by popularity.

 Does anyone know if there is a way to do that with a single query, or I'll
 have to send another query with desired sort criterion after I inspect
 number of hits on my client?

 Thx






Re: conditional sorting

2009-10-02 Thread Lance Norskog
Doing a second search immediately after the first one is consistently
under 100 ms for me, usually under 25, on cheap hardware.  Even while
sorting the results, you should have no problems. If necessary, you
could run Solr with the embedded client and do one search right after
the other, avoid the thread-switching that can happen between HTTP
requests.

On Fri, Oct 2, 2009 at 8:15 AM, Bojan Šmid bos...@gmail.com wrote:
 I tried to simplify the problem, but the point is that I could have really
 complex requirements. For instance, if in the first 5 results none are
 older than one year, use sort by X, otherwise sort by Y.

 So, the question is, is there a way to make Solr recognize complex
 situations and apply different sorting criterion.

 Bojan


 On Fri, Oct 2, 2009 at 4:22 PM, Uri Boness ubon...@gmail.com wrote:

 If the threshold is only 10, why can't you always sort by popularity and if
 the result set is 10 then resort on the client side based on date_entered?

 Uri


 Bojan Šmid wrote:

 Hi all,

 I need to perform sorting of my query hits by different criterion
 depending
 on the number of hits. For instance, if there are  10 hits, sort by
 date_entered, otherwise, sort by popularity.

 Does anyone know if there is a way to do that with a single query, or I'll
 have to send another query with desired sort criterion after I inspect
 number of hits on my client?

 Thx








-- 
Lance Norskog
goks...@gmail.com