0

我有一个包含一些文本字段和纬度和经度的表。我想要

(1)。首先进行文本搜索(例如简单的 LIKE 搜索)和

(2)。然后按地理位置接近度排序。(给定用户的地理位置,按距离对(1)中的结果进行排序)

我想确保第一个结果集(即来自文本搜索的列表)被缓存,以便它可以用于对不同的地理位置/用户进行排序;也就是说,如果用户已经搜索过“sushi”,则对于以后搜索“sushi”的用户将不会重复步骤 (1)。

这可以用 MySQL 完成吗?或者将 (1) 的结果存储在 memcached 中?我想从 memcached 中获取结果然后进行排序可能效率不高,因为我使用的是 php,而且我不知道有什么好的方法可以在那里进行地理空间排序。

4

1 回答 1

0

听起来正是Sphinx的工作,它是一个支持地理距离计算的全文搜索引擎:

http://php.net/manual/en/sphinxclient.setgeoanchor.php

于 2013-05-26T16:19:37.717 回答