-------------
PySenna 0.2.1
-------------

このモジュールは

- Python 2.4
- Senna 1.0.1

で動作確認しています。



インストール
============

distutilsを用いて行います。
以下のようなコマンドを実行してください。::

  $ python setup.py build
  $ sudo python setup.py install

PySennaのインストールを行うためには、
Sennaがインストールされている必要があります。
また、Sennaのインストール先を変更した場合は、 
setup.cfgの内容を修正する必要があります。

実行時に、::

  $ python test.py
  Traceback (most recent call last):
    File "test.py", line 3, in ?
      import senna
  ImportError: libsenna.so.0: cannot open shared object file: No such file or directory

のようなエラーが表示されるには、
Sennaライブラリがインストールされた場所に、
LD_LIBRARY_PATH を設定してください。::

  $ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH



使い方
======

test.py、test_snippet.pyの内容が簡単なサンプルになります。
基本的なインターフェースはC APIと同様です。



制限事項、C APIとの相違点
=========================

- 現状で実装されているのはBasic API、Snippet APIのみです。

- sen_index_upd() で文書IDとして指定できるのは、
  現在は文字列のみとなっています。
  sen_index_create() の引数の key_size には0を指定してください。
  (あるいは、key_size 引数を省略してください。)

- バッファへのポインタを引数として与えて値を取得するような関数は、
  Python APIでは値を(複数であればタプルやリストで)返すようになっています。

- 一部の関数では引数にデフォルト値が設定されており、省略することができます。
  例えば::
  
    senna.sen_index_create('/tmp/testindex')

  という呼び出しは、::

    senna.sen_index_create(path='/tmp/testindex',
                           key_size=0,
                           flags=senna.SEN_INDEX_NGRAM|senna.SEN_INDEX_NORMALIZE,
                           initial_n_segments=0,
                           encoding=senna.sen_enc_utf8)

  と同じ意味になります。

- sen_records_next() は文書IDやスコアを返しません。
  それらを取得するためには、
  sen_records_curr_key() や sen_records_curr_score()
  を利用してください。
