Contents
    1. 一般的な質問
    2. Sennaの使い方に関する質問
    3. 各種バインディングについて
    4. インストールに関する質問

FAQ

一般的な質問

商用利用は可能ですか?
可能です。LGPL 2.1のライセンスに従ってお使いください。ご利用の際には、Powered by Sennaバナーを使っていただけると嬉しいです。また、Sennaのコンサルティングサービスやサポートサービスを有償にて行う企業がございます。詳細については、各社のWebページをごらんください。
Senna用のアプリケーションを作ってみました
Senna本体のパッチにとどまらず、周辺アプリケーションなどの開発、大歓迎です。連絡いただければ紹介させていただきます。

Sennaの使い方に関する質問

MySQLがないと使えないのですか?
MySQLと組み合わせなくても使えます。C言語から直接利用してもいいですし、各種言語バインディングも利用できます。PostgreSQLと組み合わせたLudiaもあります。
検索がうまくいきません
以下のようなケースが考えられます。
  • MeCabの辞書のエンコーディングと、インデックス対象の文書の文字コードが異なる
  • 間違ったエンコーディングの文字列で作成した辞書に追記している
  • インデックスの互換性が失われたバージョンアップの際に、旧フォーマットのインデックスを読んでいる

このような現象が生じた場合には、 各種エンコーディングが合致していることを確認の上、 以下のいずれかの操作を行ってください。

  • Senna単体での利用の場合
    • インデックスファイルを削除し、再構築してください。
  • MySQL binding利用の場合
    • 一旦fulltext indexをdropし、再度 create indexを行う
    • MySQLサーバを終了させ、myisamchk -rでインデックスの再構築を行う
Windows版で文字コードを変更するにはどのようにすればよいですか?
  • MeCabの辞書を文字コードを変えて構築しなおす
Namazuみたいにサーバ内のコンテンツを検索できるシステムはついているの?
まだ作っていないです。Perlであれば、File-ExtractモジュールTie-Sennaモジュールを使って実装できるかもしれません。この場合はMySQLは不要です。
かなり大きな文書セットを扱うのですが、速度面では大丈夫ですか?
Sennaでは大規模な文書セットも扱えるように設計されています。以下の設定を行うことを推奨します。
  1. MySQLバインディング利用で、スコア順以外のソートを用いたり、条件での絞り込みを行ったり、COUNT(*)を件数を取得する場合には、2ind-patchをあてる。その場合、適切なkey_buffer_sizeを設定する。key_buffer_sizeの設置は、MySQLによると、搭載メモリの1/4程度が推奨されている。詳しくは、MySQLのチューニングを扱った記事等をごらんください。
  2. senna.confで、INITIAL_N_SEGMENTSをデフォルトの512から増やす。
  3. Linux 2.6以降のサーバで動かし、ユーザレベルキャッシュ(現状安定化しておりません)を有効にする。
  4. コンテンツを複数に分割する

各種バインディングについて

各種バインディングのコンパイル時にエラーが出てしまうのですが?
以下のようなエラーが出る場合があります。
myisamchk.o: In function `main':
myisamchk.c:(.text+0x72): undefined reference to `sen_init'
libmyisam.a(mi_open.o): In function `mi_open':
mi_open.c:(.text+0x14e7): undefined reference to `sen_log'
...

リンカがライブラリを発見できないことが原因だと考えられます。 以下の対策を行うことによって回避できる場合が多いです。

  • バインディングのconfigureでヘッダ/ライブラリの正しいパスを指定する
  • root権限で、/etc/ld.so.confに「/usr/local/lib」行を追加。ファイルがない場合は新規作成し追加。
  • root権限で、ldconfig -m /usr/local/libを実行

インストールに関する質問

nfkc.cのコンパイルで固まります。
一部のコンパイラでコンパイル時間が恐ろしくかかるようです。15分ほど待ってもコンパイルが終わらない場合には、Ctrl-Cで強制終了してください。

そして、以下のいずれかの方法で再度configureを実行してください。

  • --disable-nfkcオプションを指定してconfiugreを実行
  • 環境変数CFLAGSに-O0を指定してconfigureを実行
Last modified: 2007-05-30