我的任务是选择我们即将在即将开展的项目中使用的全文搜索引擎。基于我所读到的,我倾向于Solr,但我有点担心空间搜索。除了一些其他参数(关键字,类别等)之外,我们希望能够指定位置和最大距离(例如,在距离亚利桑那州坦佩25英里的范围内)。我们希望能够按距离对结果进行排序。
空间SOLR显然是相当新的,并不完全清楚它的成熟度。还有一些其他选项(手动计算然后反转距离,或solr-spatial-light。
我的问题基本上是:空间Solr(或solr-spatial-light)是否足够准备黄金时间来处理我上面描述的情况,或者我们最好不要使用Sphinx?
我也有兴趣听听实现其中任何一项的一般经验,特别是使用php。
答案 0 :(得分:5)
我目前在生产中使用Spatial Search Plugin (SSP) for Apache Solr,这是基于 空间Solr的旧实现。新的空间实现(在撰写本文时)仅在主干(或nightly builds)和currently being implemented中可用。我不知道这种实现的当前状态。
虽然Spatial插件有一些minor issues,而且这个旧代码的灵活性不如当前实现,但它的优点是可以轻松部署到现有的稳定Solr 1.4实例。此外,它有很好的记录。我将它用于您描述的完全相同的用例,没有任何问题或性能问题。
您需要一些地理编码器才能将位置转换为纬度/经度坐标。您可以使用MaxMind's GeoLite City或任何其他位置数据库。
我不能对Sphinx发表评论,因为我不使用它。