lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doron Cohen <DOR...@il.ibm.com>
Subject Re: How to do RangeQuery on a Computed Value of a Field?
Date Sun, 21 Oct 2007 13:33:11 GMT
You could use ValueSourceQuery for this - see
o.a.l.search.function. The trick is to create
your ValueSource class that is using two
FieldCacheSource objects - one for each location.

See http://issues.apache.org/jira/browse/LUCENE-1019
for a related example.

Note however that this solution would work well only
as long as the index is not huge. For a very large
index the loading of the entire two fields into the
FieldCache would become heavy, as will warming a new
searcher. This will be resolved once we heve a
payload-based ValueSource.

Doron

"Johnny R. Ruiz III" <jorzi@yahoo.com> wrote on 21/10/2007 03:44:29:

> Hi All,
>
> I was looking for a way to do a range query on 2 numeric field
> of my index.  The tricky part is, I don't directly use the
> numeric field but I have to use it on a computation formula to
> satisfy my criteria.
>
> Hope this helps to explain my scenario:
>
> pointX-->  latitude X input by user.
> pointY-->  longitude Y input by user.
>
> locX  -->  field indexed in lucene
> locY  -->  field indexed in lucene
>
> radius -->  constant value as acceptable distance to be
> returned in search results (hits)
>
> Conditon to satisfy:
>
> Math.sqrt ( (  locX - pointX ) + ( locY - pointY ) ) <= radius
>
> Is this possible in lucene?  Has anyone did this before?
> Thanks in Advance!
>
> My Actual Use Case is I want to return all location within a
> certain Radius of 1 mile given PointX and PointY from User.
>
> Regards,
> Johnny Ruiz


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