Sphinx の検索インデックス作成でMecabが使われるようにする

created at 2019-08-13 17:39+0900

Sphinx でHTML出力すると「クイック検索」が利用できる。DBもSQLもなしで検索できちゃうとはスゴイぜ、Sphinxさん。

でもデフォルトの検索インデックスだと日本語がサッパリ該当してくれない。 そこでMecab(形態素解析エンジン)で検索インデックスを作成してくれるように、あれこれやってみた。

必要なライブラリをインストール

Mecab本体とMecab辞書

brew install mecab mecab-ipadic

Python Mecab ライブラリ

pipenv install mecab-python3

conf.py設定追加

html_search_language = 'ja'
html_search_options = {
 'type': 'sphinx.search.ja.MecabSplitter',
 'dic_enc': 'utf-8',
 'dict': '/usr/local/lib/mecab/dic/ipadic',
}

dictオプションに指定するのは辞書ディレクトリ。

再ビルド&検索してみる

ちゃんと結果が出るようになった。(Mecab入れる前は、検索しても該当なしになってばかりだった)

参考サイト