This is posted as an enhancement on SOLR-2345. I am willing to work on it. But I am stuck. I would like to loop through the lat/long values when they are stored in a multiValue list. But it appears that I cannot figure out to do that. For example:
sort=geodist() asc This should grab the closest point in the MultiValue list, and return the distance so that is can be scored. The problem is I cannot find a way to get the MultiValue list? In function: src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java Has code similar to: VectorValueSource p2; this.p2 = vs List<ValueSource> sources = p2.getSources(); ValueSource latSource = sources.get(0); ValueSource lonSource = sources.get(1); DocValues latVals = latSource.getValues(context1, readerContext1); DocValues lonVals = lonSource.getValues(context1, readerContext1); double latRad = latVals.doubleVal(doc) * DistanceUtils.DEGREES_TO_RADIANS; double lonRad = lonVals.doubleVal(doc) * DistanceUtils.DEGREES_TO_RADIANS; etc... It would be good if I could loop through sources.get() but it only returns 2 sources even when there are 2 pairs of lat/long. The getSources() only returns the following: sources:[double(store_0_coordinate), double(store_1_coordinate)] How do I just get the 4 values in the function?