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

Kouhei Sutou kou****@clear*****
2014年 2月 12日 (水) 17:21:54 JST


須藤です。

In <CANgwiJyVr8LCug7axOaajsfj4X1g=QE_66UK9****@mail*****>
  "[groonga-dev,02125] Re: groonga のテーブル設計がさっぱりわかりません" on Mon, 10 Feb 2014 18:50:18 +0900,
  Hiroyuki TAKEDA <leiqu****@gmail*****> wrote:

>> たしかにこちらでも再現しました。
>> (Debian GNU/LinuxのGNOME環境で真ん中クリックでコピー)
>> 調べておきます。コピーする方が区切ってしまっている気もするのですが。。。
> 
> 他のプログラム、例えばviには全文貼り付けできるので、GNOME環境の問題では無いと思います。

試しに、簡単なCのプラグラムを書いてみました。
Groongaで標準入力から読み込んでいる箇所は↓な感じの処理になっ
ていて、このプログラムでも問題が再現しました。(リダイレクト
したりパイプ経由にすると全部のテキストを読み込めて、コピペし
て貼り付けると途中までしか読めない。)

fgets(3)の使い方を間違えているのかしら。。。

--
#include <stdio.h>
#include <string.h>

#define BUFFER_SIZE 4096

int
main(void)
{
  for (;;) {
    char buffer[BUFFER_SIZE];
    size_t length;
    if (!fgets(buffer, BUFFER_SIZE, stdin)) {
      printf("EOF\n");
      return 0;
    }
    length = strlen(buffer);
    if (length == 0) {
      printf("empty read\n");
      return 0;
    }
    if (buffer[length - 1] == '\n') {
      printf("\nline: <%zd>\n<%s>\n", length, buffer);
    } else {
      printf("read: <%zd>\n", length);
    }
  }

  return 0;
}
--

> もしかしたらですが、readlineライブラリに4KBの制限があったと思います。それが問題なら、
> 
> groonga-master\groonga-master\vendor\mruby-eeac4be\mrbgems\mruby-bin-mirb\tools\mirb\mirb.c
> 
> が対象ファイル。かな。かしら。そこまでコード追ってません。。

実は、GroongaはReadlineではなく、libeditを使っている(*)んで
すが、手元のlibeditサポートなしビルドでも再現したので、
Readline関連ライブラリーは関係なさそうです。。。うーん。

(*) GroongaがLGPLv2.1 onlyなのでGPLv3のReadlineとリンクしたパッ
    ケージを配布できない。

今回は違うっぽいですが、アイディアありがとうございました!

>> 1. TokenMecabが指定されていることの確認:
> 
> root @ dev-VirtualBox:~# groonga /var/lib/groonga/wikipedia.db dump | grep _create
...
> table_create JapaneseTerms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto ← ここ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
> と確認したら --default_tokenizer TokenMecab が抜けてました(汗
> テーブルを作りなおしたらちゃんと検索なれるようになりました。

よかったです!

> いつも親切な説明でありがとうございます!

いえいえ!

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