0

いくつかのテキスト フィールドと緯度と経度を含むテーブルがあります。したい

(1)。最初にテキスト検索を行い (単純な LIKE 検索など)、

(2)。次に、位置情報の近接度で並べ替えます。(ユーザーの地理位置情報を考慮して、(1) の結果を距離で並べ替えます)

最初の結果セット (つまり、テキスト検索からのリスト) がキャッシュされていることを確認して、異なる地理位置情報/ユーザーの並べ替えに使用できるようにしたいと考えています。つまり、ユーザーが既に「sushi」を検索している場合は、後でユーザーが「sushi」を検索するためにステップ (1) が繰り返されることはありません。

これは MySQL で実行できますか? または、(1) の結果を memcached に保存しますか? 私はphpを使用していて、そこで地理空間ソートを行う良い方法を知らないので、memcachedから結果を取得してからソートを行うのはおそらく効率的ではないと思います。

4

1 に答える 1

0

測地距離の計算をサポートする全文検索エンジンであるSphinxの仕事はまさにそのように思えます。

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

于 2013-05-26T16:19:37.717 に答える