ファンステージのゴリブログ

groonga20

そいつの名は、「グルン・ガー」!

そういうわけで、今回は技術のお話しです

 

先日、クライアント様のWebサービスが無事にオープン致しました!

 

内容は企業と企業をマッチングするためのサービスなのですが、ファンステージはこのサービスの検索部分の開発を請け負わさせて頂きました!

 

全文検索、もちろん高速に!ドリルダウン検索!カテゴリー検索!多言語もね!

と盛りだくさんの内容を一気に解決。。。。うーーーん。。。。

 

で、選択したデータベースが「Groonga」グルンガと読みます

今回の案件で出会った、尊敬する先輩からご紹介を受けまして、他のデータベースも含めて検討しましたが

とにかく、コイツが使いやすくて多機能!非常に便利!でして

諸々の要件を超短期間で一気に解決出来ました!

 

今流行のNoSQLはもちろん、ドリルダウンも全文検索もあれもこれも。。。。

今回はデータベースに助けられました〜(感泣)

高木さん、ありがとうございました〜!

 

印象としては、全文検索でSolrやらLuceneやらelasticナンタラやらを導入してどーのこーのするよりも何倍も早く、手軽に導入できます!

 

ここまで書くとGroonga売ってるの?って目で見られそうなので、欠点も。

多機能なので、ディスクは使います。検証してわかったのですがゴミデータも残りやすいです。

定期的にメンテナンスが必要ですね。ただ、メンテナンスは非常に楽です。

ですので、定期メンテを考えられることが前提。

大規模なシステムの基幹データベースとしては使いづらいかな。検索用として割り切ったらこの上なく使いやすいはず。

 

他のNoSQL系データベースと比較してみました。(僕が使ったことのある範囲で。僕の主観です。)

CouchDB・・・分散が苦手。めっちゃ高速。小規模向きなのかな

MongoDB・・・分散は得意(シャーディング、マスター/スレーブ両方できるし)。まぁまぁ高速。全文検索機能は持ってるけど日本語不対応

CouchBase・・・分散できる(マスター/スレーブしかやったことない)。まぁ高速。ちょっとした制約があってちょっと使いにくいイメージ。

有料で正式サポートを受けられる。ElasticSearchとの相性が良い(コネクタを持っている)

Cache・・・分散できる(マスター/スレーブしかやったことない)。まぁ高速。Javaとの相性はバッチリ!。有料のみ。

Groonga・・・分散できるらしい。まぁまぁ高速。全文検索あり。Rubyとの相性はバッチリ(Rronnga(Ruby版がある))

HTTPサーバーとしても機能するため、管理が簡単。

 

小規模ならCouchDB、中〜大規模でMySQL代替としてMongoDB、サポートがほしいならCouchBase、サポートが欲しくてDBクライアントがJavaならCache

ただし、今のところ全文検索エンジンは別途用意する必要があり。

 

検索用データベースとして割り切る事ができるならGroonga。

 

という感じでしょうか。

Mongo+ElasticSearchは王道ですが

Mongo+Groongaも近々試してみたいと思います。

 

Author: ゴリ

株式会社ファンステージ 代表取締役CTOのゴリです 普段考えてることから、技術のことまで幅広く語っていきます

Comments are closed.