[groonga-dev,01323] Re: mroongaを用いたアプリを開発するにあたって

アーカイブの一覧に戻る

Kouhei Sutou kou****@clear*****
2013年 4月 24日 (水) 16:27:16 JST


須藤です。

In <CAH7b****@mail*****>
  "[groonga-dev,01314] Re: mroongaを用いたアプリを開発するにあたって" on Mon, 22 Apr 2013 19:09:24 +0900,
  もんきちさん <re.gz****@gmail*****> wrote:

> 一件気になるのは、半径を指定して
> の検索をgroonga直呼びでやってい
> ることでしょうか。
...
> 今のところ、mroongaを経由せず直
> 接呼ぶ形態をとらないと、半径指定
> の検索はできないのでしょうか?

はい。
というのも、MySQLの位置の型で円を指定する方法がなさそうなん
です。

  http://dev.mysql.com/doc/refman/5.6/en/spatial-extensions.html
に位置の型があって、LinearRingというのが一番円を作るのに近そ
うなのですが、線の組合せで閉じた図形を書くのができるだけみた
いです。半径と角度が指定できたりすれば円を表現することができ
るのですが、それができない(ように見える)のでサポートできず
にいます。

すべてSQLのレイヤーでやるなら、まず、検索対象の円を含む四角
を検索するMBRContains()をWHEREにいれて、ANDで

  GLength(LineString(Point(円の中央の座標), pointが入ったカラム)) <= 半径

を加えることになります。

範囲内でヒットする件数が少なければわりと現実的な速度で動くと
思います。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
アーカイブの一覧に戻る