[groonga-dev,02773] Re: Heroku用Groongaの形態素解析対応について

Back to archive index

杉本涼 sugry****@gmail*****
2014年 9月 15日 (月) 18:34:13 JST


杉本です。

何回も試しているのですがなかなか成功しません。
助けてください!
たぶん、MeCabの辞書のNAIST-jdicのビルドのところで
エラーが発生しているのだと思います。
IPA辞書を使用している時には、成功しました。

実行した手順↓

% heroku create
% git push heroku master
% heroku run bash

ここから、Heroku のターミナル

% rake GITHUB_TOKEN=MY_GITHUB_TOKEN DEBUG=yes

実行結果は、GistにKyTea, MeCab, NAIST-jdicの部分で分けておいてあります。

KyTea:
https://gist.github.com/sugryo/6cc5547ca9accb0aa888#file-kytea-txt
MeCab:
https://gist.github.com/sugryo/6cc5547ca9accb0aa888#file-mecab-txt
NAIST-jdic:
https://gist.github.com/sugryo/6cc5547ca9accb0aa888#file-naist_jdic-txt

2014年9月13日 12:33 Kouhei Sutou <kou****@clear*****>:

> 須藤です。
>
> In <CAH9Y0y4+TG7qtGNmMiB2ZJG_=wCzrU****@mail*****>
>   "[groonga-dev,02768] Heroku用Groongaの形態素解析対応について" on Sat, 13 Sep 2014
> 08:51:34 +0900,
>   杉本涼 <sugry****@gmail*****> wrote:
>
> > 須藤さんが、前にMeCabに対応したいと言っていたので対応したいと思いました。
>
> ありがとうございます!
>
> > 僕は、KyTeaとMeCabのどちらにも対応させたいのですがどう思いますか?
>
> はい、よいと思います!
>
>
> ただ、1つ注意する点があります。それはビルド後のデータのサイ
> ズです。形態素解析器は辞書が必要なんですが、一般的にそれらは
> 大きめのサイズになります。
>
> Herokuでは各アプリケーションのインスタンスが使えるサイズに制
> 限があるようです。このサイズにはビルド後のデータサイズ
> (KyTeaやMeCabを含む)も含まれます。
>
> Heroku用のGroongaはローカルにデータを保存する作りなので、ビ
> ルドのデータサイズが増えると、その分、ローカルに保存できるデー
> タのサイズも小さくなると思います。
> (ちゃんと計算すると「そんなの気にしなくてよい」となるかもし
> れません。)
>
> あ、 http://www.clear-code.com/blog/2014/5/28.html にちょっ
> と検討してみたのが残っていました。
>
> > slugの最大サイズは300MB
> >
> > データ量はどうして多くないのか説明します。
> >
> > それは、dynoが使えるローカルストレージのサイズにそんなに大
> > きくない上限があるだろうからです。実際に上限がいくつかはわ
> > かりませんが、1GB強くらいでしょう。
> >
> > 予想してみましょう。
> >
> > slugの最大サイズは300MBです。slugはgzで圧縮されています。
> > Rubyのビルドパックでできるファイルがだいたい100MBで、それ
> > をtar.gzにすると25MBくらいです。そのため、ここでは1/4くら
> > いに圧縮できると考えます。dynoではslugを展開して利用します。
> > 1/4に圧縮されているとすると、展開後は1.2GBになります。その
> > ため、1GB強くらいが上限になっていると考えられます。
> >
> > しかし、展開後で1.2GBになるdynoは想定外でしょうから、実際
> > に使えるのはもっと少ないと考えるべきです。半分の500MBくら
> > いとしましょう。そのうち、Ruby関連のファイルで100MBくらい
> > 使います。残りは400MBです。Groongaのデータベースはインデッ
> > クスの張り方にもよりますが、少なくとも検索対象のデータ(入
> > 力データ)の3倍以上の大きさになります。実際にはいくつかイ
> > ンデックスを張るでしょうから、4倍以上などもっとサイズが増
> > えます。よって、入力データは多くても100MBより少なくしなけ
> > ればいけません。
> >
> > つまり、それほど大きなデータを扱うことはできないということ
> > です。そのため、Groongaのデータベースの作成にかかる時間も
> > 短くなり、dynoを起動する毎にGroongaのデータベースを作るこ
> > とも現実的になります。
>
>
> KyTeaやMeCabを使いたい人はビルドのサイズが増えるのはしょうが
> ないのですが、使わない人はKyTeaやMeCabのせいでサイズが減るの
> はかわいそうだなぁと思います。
>
>
> 対策として、
>
>   heroku config:set GROONGA_KYTEA_ENABLE=no
>
> とか
>
>   heroku config:set GROONGA_MECAB_ENABLE=no
>
> とかしたらheroku-buildpack-groonga:bin/compileでKyTeaやMeCab
> 関連のファイルをrmするといいんじゃないかなぁと思いました。
> (ビルドするときは常にKyTeaやMeCab関連のものもビルドして
> GitHubにアップロードしておいて、展開するときに削除する。)
>
>
> と、まぁ、考えてみたんですが、最初はそこまで頑張らなくてもよ
> くて、おいおい対応していくのでもいいかなぁという気もしていま
> す。とりあえず、KyTeaやMeCab入りにするとサイズがどのくらい増
> えるのかを見てからですかねぇ。
>
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/>
>
> Groongaベースの全文検索システムを総合サポート:
>   http://groonga.org/ja/support/
> パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
>   http://www.clear-code.com/recruitment/
> コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ:
>   http://www.clear-code.com/services/code-reader/
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>



groonga-dev メーリングリストの案内
Back to archive index