senna を用いて全文検索(Ubuntu 上,ソースコードからビルド)
全文検索エンジン senna は2009年に Groonga へ改名され、senna としての開発は終了している。新規に全文検索を行う場合は Groonga を使う。Ubuntu 24.04 LTS で senna 1.1.5 をソースからビルドするには、MeCab などの依存パッケージとビルドツールが必要である。共有ライブラリのパスは /etc/ld.so.conf.d/ に設定する。
senna の最終版である 1.1.5 は2008年のリリースであり、公式の配布サイトであった SourceForge.JP(後の OSDN)は2025年にサービスを終了した。そのため、以下の手順は senna のソースコード senna-1.1.5.tar.gz を手元に持っている場合を対象とする。新規に導入する場合は、後継の Groonga を使う。
後継の Groonga のインストール(推奨)
Groonga は senna の後継として開発が続けられている全文検索エンジンである。Ubuntu では公式の APT リポジトリからインストールできる。
- Groonga の APT リポジトリを登録する
次のコマンドを実行する。
sudo apt update sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt update - Groonga と MeCab トークナイザをインストールする
次のコマンドを実行する。groonga-tokenizer-mecab は、日本語を分かち書きして索引を作成するために使用する。
sudo apt -V -y install groonga groonga-tokenizer-mecab
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行する.
# パッケージリストの情報を更新
$ sudo apt update
# インストール済みのパッケージを更新 (依存関係の変化も反映)
$ sudo apt full-upgrade
# 更新をシステムに反映させるために再起動
$ sudo shutdown -r now
MeCab のインストール
senna で日本語の分かち書きによる全文検索を行うためには MeCab が必要である. 次のコマンドを実行する.Ubuntu 24.04 LTS のリポジトリでは MeCab 0.996 が提供される.辞書は UTF-8 版の mecab-ipadic-utf8 を使う.
$ sudo apt -y update
$ sudo apt -y install mecab libmecab-dev mecab-utils mecab-ipadic-utf8
C/C++ コンパイラと Make とビルドツールのインストール
senna をソースコードからビルドするために必要なツール群をインストールする. 次のコマンドを実行する.
$ sudo apt -y update
$ sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
senna のソースコードの配置
senna 1.1.5 のソースコード senna-1.1.5.tar.gz を,分かりやすいディレクトリ(例えば /tmp)に置く.
senna のインストール手順
ソースコードの展開(解凍)
ソースコードを展開(解凍)する. 次のコマンドを実行する.
$ cd /tmp
$ rm -rf senna-1.1.5
$ tar -xvzf senna-1.1.5.tar.gz
ソースコードからビルドしてインストール
展開したソースコードからビルドし,システムにインストールする. senna 1.1.5 は現在の GCC を想定していないため,ビルドが通らない場合がある.その場合は Groonga を使う.
- 次のコマンドを実行する.--with-mecab で MeCab による分かち書きを有効にし,--with-encoding=utf8 で既定の文字エンコーディングを UTF-8 にする.
$ cd /tmp $ cd senna-1.1.5 $ ./configure --with-mecab --with-encoding=utf8 $ make $ sudo make install - 結果を確認する.
ビルドおよびインストールの過程でエラーメッセージが表示されていないことを確認する.
共有ライブラリの検索パスの設定
インストールしたライブラリがシステムに認識されるように設定を行う.Ubuntu 24.04 LTS では /etc/ld.so.conf.d/ ディレクトリに設定ファイルを作成する.スーパーユーザ権限で,以下の手順を実行する.
- /etc/ld.so.conf.d/ ディレクトリに設定ファイル(例: senna.conf)を作成し,以下の行を記述する.
(例: 「sudo nano /etc/ld.so.conf.d/senna.conf」でファイルを作成・編集する)
/usr/local/libこの設定により,/usr/local/lib ディレクトリが共有ライブラリの検索パスに追加される.
- 設定をシステムに反映させるために,「sudo /sbin/ldconfig」コマンドを実行する.
$ sudo /sbin/ldconfig
インストールした senna で全文検索を行うには,別途,索引の作成と検索クエリの実行が必要である.