2015-05-29 69 views
0

我有一个应用程序,我需要通过地理坐标进行搜索。我的索引建立得很好,我正在使用PointVectorStragegy。按Lucene.net Spatial 3.0.3中的距离排序

我能圆

Point p = spatialContext.MakePoint(latitude, longitude); 
var circle = spatialContext.MakeCircle(latitude, longitude, DistanceUtils.Dist2Degrees(distance, DistanceUtils.EARTH_EQUATORIAL_RADIUS_MI)); 
var args = new SpatialArgs(SpatialOperation.IsWithin, circle); 
var filter = strategy.MakeFilter(args); 
var records = searcher.Search(booleanQuery, filter, data.Page * pageSize, sort); 

结果我回来都是精品中进行搜索,但他们降序排序,最接近的是最后一次。截至目前,我正在使用Sort.RELEVANCE

有谁知道我可以如何排序搜索结果?实现自定义排序?有没有一个? 如果有人确实有一些代码,非常感谢。

回答

0

我环顾了一下,尝试了不同的东西。 我做了什么,它的工作原理是这样的:

sort = new Sort(new SortField("Distance", SortField.SCORE, false)); 

真正拿到第一最接近的,否则为false。