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

时间:2012-08-07 03:07:33

标签: solr solrj

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

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

A, radius=3k
B, radius=5k, distance from A = 6k
C, radius=15k, distance from A = 100k

使用上面的对象,如果我的搜索中心是对象A,我只需要返回对象B.系统中可能有数千个对象,搜索中心可以在任何一个对象中。

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

提前致谢!

修改

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

的3k内的任何内容
fl=*,_dist_:geodist()&fq={!geofilt}&pt=x,y&sfield=location&d=3&q=*:*

d=3参数必须类似于d=(doc1.radius + doc2.radius) >= _dist_。我想问题是如何在查询中引用要比较的文档元素?我可以在查询中使用伪字段_dist_作为值吗?

0 个答案:

没有答案