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;
}
}