如何在Sphinx中实现`@ geodist`排序/搜索?

时间:2011-01-27 17:16:41

标签: performance indexing sphinx spatial

@geodist搜索是否使用任何类型的地理空间索引(如R-tree)来提高性能?

我对锚是不变的情况感兴趣,每个文档都有自己的以弧度存储的纬度/经度对。

我试图从Sphinx源代码中找出它,但没有找到任何空间索引的提及。如果没有索引用于地理空间搜索,那么如何确保性能?

如果没有提供关键字,Sphinx会进行全面扫描吗?

背景:我们有一个包含100多万个短条目的数据集。一些新添加的项目将存储纬度/经度。每天都会增加数百万条记录。我预测大约5-10%的新添加的条目将具有位置信息。

我们的目标是为查询提供位置启用条目的空间搜索,例如“获取锚点周围100米半径范围内的所有条目”,“使用和不使用关键字搜索获得100个最近的锚点附近条目”。

一些谷歌搜索返回this forum thread,建议使用基于人工网格的索引来确保性能。这仍然是这样吗?

1 个答案:

答案 0 :(得分:0)

不,sphinx没有任何内置的地理空间索引 - 因此瓦片的原因(制作一个rudimentry地理空间索引:)

它确实只针对每一行进行球面距离计算 - 全表扫描。它的速度非常快,因为属性都存储在内存中。

检查来源: http://codesearch.google.com/#vqMBzkK4ih0/src/sphinxexpr.cpp&exact_package=git://github.com/squadette/sphinxsearch.git&q=cos%20sphinxsearch&type=cs&l=1186

最近在sphinx论坛上讨论这个问题 http://sphinxsearch.com/forum/view.html?id=8644