lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doron Cohen <>
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 The trick is to create
your ValueSource class that is using two
FieldCacheSource objects - one for each location.

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.


"Johnny R. Ruiz III" <> 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:
For additional commands, e-mail:

View raw message