php - 用于空间搜索的 Solr 与 Sphinx

标签 php solr sphinx spatial

我的任务是选择我们将在即将开展的项目中使用的全文搜索引擎。根据我读过的内容,我倾向于 Solr,但我有点担心空间搜索。除了一些其他参数(关键字、类别等)之外,我们还希望能够指定位置和最大距离(例如,在亚利桑那州坦佩 25 英里以内)。我们希望能够按距离对结果进行排序。

Spatial SOLR 显然很新,尚不完全清楚它的成熟度。还有一些其他选项(手动计算然后反转距离,或 solr-spatial-light

我的问题基本上是:Spatial Solr(或 solr-spatial-light)是否足以在黄金时间处理我上面描述的情况,或者我们最好还是使用 Sphinx?

我也有兴趣听听实现其中任何一个的一般经验,尤其是使用 php。

最佳答案

我目前正在使用 Spatial Search Plugin (SSP) for Apache Solr在生产中,这是基于 空间 Solr 的旧实现。新的空间实现(截至撰写本文时)仅在主干(或 nightly builds )和 currently being implemented 中可用。 .我不知道此实现的当前状态。

虽然 Spatial Plugin 有一些 minor issues并且这个较旧的代码不如当前的实现灵活,它的优点是可以轻松部署到现有的稳定 Solr 1.4 实例。另外,它有据可查。我将它用于您描述的完全相同的用例,没有任何问题或性能问题。

您将需要一些地理编码器将位置转换为纬度/经度坐标。您可以使用 MaxMind's GeoLite City或任何其他位置数据库。

我无法对 Sphinx 发表评论,因为我没有使用它。

关于php - 用于空间搜索的 Solr 与 Sphinx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823092/

相关文章:

mysql - Sphinx 获得数百万结果

php - 获取预期的目标 url 而不会丢失中间件中的值

javascript - 类型错误 : Cannot read eager loaded property of undefined

azure - 使用 Solr 在 Azure VM 上构建专用搜索服务器

mysql - ThinkingSphinx 匹配精确短语

php - 如何在sphinx中使用子查询?

php - 多表JOIN返回重复结果,类似facebook的事件墙

php - 检查网站上是否加载了我的 javascript

java - Solr 查询语法如 SQL “IN” 条件

java - 使用 apache solr 6.1.0 时由于 maven 依赖而出错