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