lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Johnson (Created) (JIRA)" <j...@apache.org>
Subject [Lucene.Net] [jira] [Created] (LUCENENET-448) GeoHashFilteredDocIdSet does not work at all
Date Mon, 17 Oct 2011 00:56:11 GMT
GeoHashFilteredDocIdSet does not work at all
--------------------------------------------

                 Key: LUCENENET-448
                 URL: https://issues.apache.org/jira/browse/LUCENENET-448
             Project: Lucene.Net
          Issue Type: Bug
          Components: Lucene.Net Contrib
    Affects Versions: Lucene.Net 2.9.4
         Environment: Windows 7 x64
            Reporter: Jeff Johnson
             Fix For: Lucene.Net 2.9.4


The GeoHashFilteredDocIdSet is assuming the values are always in the cache which is wrong.
A proposed fix for the method is listed here for GeoHashDistanceFilter.cs:

public GeoHashFilteredDocIdSet(DocIdSet innerSet, string[] geoHashValues, Dictionary<string,
double> distanceLookupCache, double lat, double lng, int docBase, double distance, Dictionary<int,
double> distances) 
                : base(innerSet , (docid) => /* was: public override Match */
			{
				String geoHash = geoHashValues[docid];
				double[] coords = GeoHashUtils.Decode(geoHash);
				double x = coords[0];
				double y = coords[1];

				double cachedDistance;
                distanceLookupCache.TryGetValue(geoHash, out cachedDistance);
				double d;

				if (cachedDistance > 0)
				{
					d = cachedDistance;
				}
				else
				{
					d = DistanceUtils.GetInstance().GetDistanceMi(lat, lng, x, y);
					distanceLookupCache[geoHash] = d;
				}

				if (d < distance)
				{
					distances[docid + docBase] = d;
					return true;
				}
				
				return false;
			})
			{
				_geoHashValues = geoHashValues;
				_distances = distances;
				_distance = distance;
				_docBase = docBase;
				_lng = lng;
				_lat = lat;
				_distanceLookupCache = distanceLookupCache;
			}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message