senna を用いて全文検索(Ubuntu 上,apt でインストール)

全文検索システムsennaは開発終了し、後継のGroongaが推奨される。Ubuntu 24.04 LTSでsennaをソースからビルド・インストールするには、MeCabなどの依存パッケージとビルドツールが必要である。共有ライブラリのパスは/etc/ld.so.conf.d/に設定が推奨される。古いソフトウェアのため利用には注意が必要である。

本記事で扱うsennaバージョン1.1.5は2008年頃に開発が停止しており、Ubuntu 24.04 LTS環境でのビルドや動作に互換性の問題が生じる可能性があり、長期的な運用には推奨されない。開発停止しているため、サポートや修正も期待できないことに注意する必要がある。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行する.

Ubuntu のインストールは別ページ »で説明している.

# パッケージリストの情報を更新
$ sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
$ sudo apt full-upgrade
# 変更をシステム全体に確実に反映させるために再起動
$ sudo shutdown -r now

MeCab のインストール

sennaで日本語の分かち書きによる全文検索を行うためにはMeCabが必要である. 次のコマンドを実行する.

$ sudo apt -y update
$ sudo apt -y install mecab libmecab-dev mecab-utils mecab-ipadic-utf8 python3-mecab

Ubuntu 24.04 LTSのリポジトリにはMeCab 0.996が提供されている.インストール時に文字コードの設定(UTF-8)に注意する必要がある.

C/C++ コンパイラと Make とビルドツールのインストール

sennaをソースコードからビルドするために必要なツール群をインストールする. インストールするには,次のコマンドを実行する.

$ sudo apt -y update
$ sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config

curl のインストール(Ubuntu 上)

sennaのソースコードをダウンロードするためにcurlが必要である. 次のコマンドを実行する.

$ sudo apt -y update
$ sudo apt -y install curl

senna のソースコードのダウンロード

SourceForge.jp のページを開き、ソースコードをダウンロードする.

  1. Web ページを開く

    http://sourceforge.jp/projects/senna

  2. Download」をクリックする.
  3. ダウンロードしたファイルを分かりやすいディレクトリ(例えば /tmp) に置く.

senna のインストール手順

ソースコードの展開(解凍)

ダウンロードしたソースコードを展開(解凍)する. 次のコマンドを実行する.

$ cd /tmp
$ rm -rf senna-1.1.5
$ tar -xvzf senna-1.1.5.tar.gz
tarコマンド実行結果の例

ソースコードからビルドしてインストール

展開したソースコードからビルドし,システムにインストールする. Ubuntu 24.04 LTSの最新GCCコンパイラとの互換性に問題が生じる可能性もあることに留意する必要がある.

  1. 次のコマンドを実行する.
    $ cd /tmp
    $ cd senna-1.1.5
    $ ./configure --with-mecab --with-encoding=utf8
    $ make
    $ sudo make install
    
  2. 結果を確認する.

    ビルドおよびインストールの過程でエラーメッセージが表示されていないことを確認する必要がある.

    make installコマンド実行結果の例

ld.so.confの設定

インストールしたライブラリがシステムに認識されるように設定を行う. 現代のLinuxシステム,特にUbuntu 24.04 LTSでは `/etc/ld.so.conf.d/` ディレクトリに設定ファイルを作成する方法が推奨されている.スーパーユーザ権限で,以下の手順を実行する.

  1. `/etc/ld.so.conf.d/` ディレクトリに新しい設定ファイル(例: `senna.conf`)を作成し、以下の行を記述する.

    (例: `sudo nano /etc/ld.so.conf.d/senna.conf` でファイルを作成・編集する)

    /usr/local/lib
    

    この設定により、`/usr/local/lib` ディレクトリが共有ライブラリの検索パスに追加される.

    /etc/ld.so.confファイルの内容例。この画像はld.so.conf.dの使用前のものである可能性がある。
  2. 設定をシステムに反映させるために,「sudo /sbin/ldconfig」コマンドを実行する.
    $ sudo /sbin/ldconfig
    

補足: sennaをインストールした後、実際に全文検索を行うためには、別途インデックスの作成や検索クエリの実行といった手順が必要となる.長期的な運用を考える場合、活発に開発されている後継のGroongaの利用を検討することを推奨する.