可以在动态计算最大距离的地方进行查询dist
,具体取决于与正在搜索的文档相关的字段是什么。
我的意思是:
ctx.makeCircle(la, lo, DistanceUtils.dist2Degrees(Min(100km, currentDocumnet.getField("max_distance")),DistanceUtils.EARTH_MEAN_RADIUS_KM))
代替:
new SpatialArgs(SpatialOperation.Intersects,ctx.makeCircle(la, lo, DistanceUtils.dist2Degrees(dist,DistanceUtils.EARTH_MEAN_RADIUS_KM)));
为了得到我想要的结果,我正在对我的 ScoreDoc 进行一些手动过滤:
String maxDistance = d.get(Offer.MAX_DISTANCE);
if (maxDistance != null && maxDistance.length() > 0) {
logger.info("Contractor max. distance =" + maxDistance);
int maxContractorDistance = Integer
.parseInt(maxDistance);
if (distKM > maxContractorDistance
&& maxContractorDistance > 0) {
logger.info("Contractor is too far"
+ maxContractorDistance);
continue;
}
}