杉本涼
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 >