Sphinx の検索インデックス作成でMecabが使われるようにする¶
created at 2019-08-13 17:39+0900
Sphinx でHTML出力すると「クイック検索」が利用できる。DBもSQLもなしで検索できちゃうとはスゴイぜ、Sphinxさん。
でもデフォルトの検索インデックスだと日本語がサッパリ該当してくれない。 そこでMecab(形態素解析エンジン)で検索インデックスを作成してくれるように、あれこれやってみた。
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
必要なライブラリをインストール¶
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入れる前は、検索しても該当なしになってばかりだった)
参考サイト¶
Sphinxの分かち書きアルゴリズムにMeCabを使用する