Solr Geo查询以查找对象的相交半径

Solr Geo查询以查找对象的相交半径,solr,solrj,Solr,Solrj,我需要返回半径相交的所有对象。换句话说,两个物体半径之和大于它们之间的距离 例如,假设我有以下对象,我的搜索中心是一个 A, radius=3k B, radius=5k, distance from A = 6k C, radius=15k, distance from A = 100k 使用上面的对象,如果我的搜索中心是对象A,我只需要返回对象B。系统中可能有数千个对象,搜索中心可以位于其中任何一个 我已经用solr实现了简单的地理距离过滤(即从A开始给我3k的所有信息),但我不确定从哪里

我需要返回半径相交的所有对象。换句话说,两个物体半径之和大于它们之间的距离

例如,假设我有以下对象,我的搜索中心是一个

A, radius=3k
B, radius=5k, distance from A = 6k
C, radius=15k, distance from A = 100k
使用上面的对象,如果我的搜索中心是对象A,我只需要返回对象B。系统中可能有数千个对象,搜索中心可以位于其中任何一个

我已经用solr实现了简单的地理距离过滤(即从A开始给我3k的所有信息),但我不确定从哪里开始这个查询。这可能与Solr有关吗?我可以访问数据,因此在将文档加载到solr之前,我可以预先计算任何必要的值来帮助查询。另外,我正在使用Solr4

提前谢谢

编辑:

我突然想到,我真正需要的是得到A(搜索中心)的半径,以及在查询本身中检查的任何其他对象,以便我可以使用它们之间的差异。我现在使用的查询只返回x,y点3k范围内的任何内容:

fl=*,_dist_:geodist()&fq={!geofilt}&pt=x,y&sfield=location&d=3&q=*:*
d=3
参数需要类似于
d=(doc1.radius+doc2.radius)>=\u dist\u
。我想问题是如何在查询中引用被比较文档的元素?我可以使用伪字段
\u dist\u
作为查询中的值吗