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 リポジトリからインストールできる。

  1. 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
    
  2. Groonga と MeCab トークナイザをインストールする

    次のコマンドを実行する。groonga-tokenizer-mecab は、日本語を分かち書きして索引を作成するために使用する。

    sudo apt -V -y install groonga groonga-tokenizer-mecab
    

前準備

Ubuntu のシステム更新

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

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

# パッケージリストの情報を更新
$ 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
tarコマンド実行結果の例

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

展開したソースコードからビルドし,システムにインストールする. senna 1.1.5 は現在の GCC を想定していないため,ビルドが通らない場合がある.その場合は Groonga を使う.

  1. 次のコマンドを実行する.--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
    
  2. 結果を確認する.

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

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

共有ライブラリの検索パスの設定

インストールしたライブラリがシステムに認識されるように設定を行う.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 ディレクトリが共有ライブラリの検索パスに追加される.

    共有ライブラリ検索パスの設定ファイルの内容例
  2. 設定をシステムに反映させるために,「sudo /sbin/ldconfig」コマンドを実行する.
    $ sudo /sbin/ldconfig
    

インストールした senna で全文検索を行うには,別途,索引の作成と検索クエリの実行が必要である.