[groonga-dev,02124] Re: groonga のテーブル設計がさっぱりわかりません

Kouhei Sutou kou****@clear*****
2014年 2月 10日 (月) 16:50:22 JST


須藤です。

In <CANgwiJxgo3iqKt=Y8roxZw3C33+5rRF4L75Au68cHa+esDiu_w****@mail*****>
  "[groonga-dev,02123] Re: groonga のテーブル設計がさっぱりわかりません" on Mon, 10 Feb 2014 16:10:14 +0900,
  Hiroyuki TAKEDA <leiqu****@gmail*****> wrote:

> 先日教えていただいたWikipediaのテーブル定義でデータベースを作り、
> 実際にWikipediaのデータをロードさせたのですが、うまくいきませんでした。

そうですか。。。

> それでgroongaのコマンドから対話モードでロードさせると4KBぐらいのところで途切れてしまいました。

たしかにこちらでも再現しました。
(Debian GNU/LinuxのGNOME環境で真ん中クリックでコピー)
調べておきます。コピーする方が区切ってしまっている気もするのですが。。。

> 2014-02-10 15:48:35.784123|e| groonga(+0x4ff9) [0x7fb9dc6a8ff9]
> 2014-02-10 15:48:35.784136|e|
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fb9dba88de5]
> 2014-02-10 15:48:35.784148|e| groonga(+0x5412) [0x7fb9dc6a9412]
> 2014-02-10 15:48:35.784228|w| grn_str_charlen_utf8(): incomplete character
> 2014-02-10 15:48:35.784248|e| [table][load] failed to set column value: too
> long key: (94770): key: <"1">, column: <text_ja>, value: <"
> あさ、眼をさますときの気持は、面白い。か"...(94986)>
> 2014-02-10 15:48:35.796680|n| grn_fin (0)
> 
> とキーが長すぎるとエラーが出ていました。直接的な原因はテーブルの主キーのサイズの4096B制限だと思うのですが、
> えーと、大きめのテキストをロードしたいときはどうすればいいのでしょうか。

うまくトークナイズできずに、text_ja全体を1つのトークンとして
扱ってしまっているように見えます。
(Articlesテーブルではなく、JapaneseTermsテーブルの方が制限
にひっかかってそう。)

なので、トークナイザーの指定がおかしいのではないかという気が
します。考えられる原因は次の通りです。

  * MeCabサポートなしでGroongaがビルドされているのに
    TokenMecabを使っている。
  * TokenMecabをtypoしている。

確認するために次のコマンドの結果を教えてもらえませんか?

1. TokenMecabが指定されていることの確認:

  # groonga /var/lib/groonga/wikipedia.db dump | grep _create

TermsとJapaneseTermsに--default_tokenizerの指定があるかを確
認します。Groongaは--default_tokenizerに存在しないトークナイ
ザーを指定しても単純に無視するのでMeCabサポートなしでGroonga
をビルドしていると--default_tokenizerがでてきません。


2. MeCabサポート付きでビルドされているかの確認:

  % groonga --version
  groonga 3.1.2-19-g87075e5 [...,mecab,...]

  configure options: <...>

「[...]」の中に「mecab」と入っていなければMeCabサポート付き
でビルドされていません。


3. テーブル定義に間違いがないかの確認

テーブル定義をそのままコピペしてください。問題がないか確認し
たいです。



-- 
須藤 功平 <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 メーリングリストの案内