2009年9月11日金曜日

Geohashだなぁ

GAE,つまりbigtableでは検索条件の指定に制限があるので、ある緯度経度とある緯度経度の範囲にあるデータを取得することは通常できないということが分かった。

この問題を解決するのがGeohashという方法らしい。
Geohash」 - Wikipedia

上記ページにもJavaでgeohashのエンコード・デコードをするコードへのリンクがあるが、これはライセンスがLGPLなので使いにくい。

MITライセンスのものがあったので、これを試してみよう。

しかし、普通なら検索時にいちいち数学的な計算による比較をするところを,文字列の比較でバンバン絞り込んで高速に検索できるようになるわけだから、頭いいよなぁ。

世界は広い。