If you're using DataImportHandler, a custom (Java or script) transformer could do this.

Also an UpdateProcessor could do it.

But there is no conditional copyField capabilities otherwise.

Keep in mind that pragmatically, if you're doing your own indexing code, why not have a line like this? :)

   max_side = (length > width) ? length : width

        Erik


On Aug 25, 2009, at 2:20 PM, Erik Earle wrote:
Is there a way to have the max_side field only in Solr ...as in a conditional copyField or something like that?

I'd like to push as much of this into Solr as I can because the app and db that Solr is indexing are not really the best place to add this type of functionality.









----- Original Message ----
From: Koji Sekiguchi <k...@r.email.ne.jp>
To: solr-user@lucene.apache.org
Sent: Tuesday, August 25, 2009 4:04:29 AM
Subject: Re: Solr Query help - sorting

Hi Erik Earle,

Ahh, I read your mail too fast... Erik Hatcher's method should work.

Thanks!

Koji


Erik Hatcher wrote:
You couldn't sort on a multiValued field though.

I'd simply index a max_side field, and have the indexing client add a
single valued field with max(length,width) to it. Then sort on max_side.

   Erik

On Aug 25, 2009, at 4:00 AM, Constantijn Visinescu wrote:

make a new multivalued field in your schema.xml, copy both width and
length
into that field, and then sort on that field ?

On Tue, Aug 25, 2009 at 5:40 AM, erikea...@yahoo.com
<erikea...@yahoo.com>wrote:

Clever... but if more than one row adds up to the same value I may
get the
wrong order (like 50, 50 and 10, 90)

I need a max function but the one provided only compares against a
constant.

Sent from my iPhone

On Aug 24, 2009, at 6:15 PM, Koji Sekiguchi <k...@r.email.ne.jp> wrote:

How about using sum() FunctionQuery, via:

http://localhost:8983/solr/select/?q=_val_%3A%22sum%28width%2Clength%29%22


Thanks,

Koji


Erik Earle wrote:
Suppose I have a database of rectangle attributes that I have
indexed in
Solr and I want to get the top 10 widest or longest rectangles from one
query.


name  |  width  |  length
A     |  100    |  10
B     |  10     |  90
C     |  80     |  10
...


My indexed fields are:  name, width, length

Is there a way to query so that my data returns the order:  A, B, C
















Reply via email to