Plumeをsearch-lindera
フィーチャー付きでビルドしたバージョンのDockerイメージをDocker Hubに置くようにした: kitaitimakoto/plume
これを使ってさっそく検索機能を日本語対応させて(環境変数SEARCH_LANG=ja
を設定)、Kubernetesで使ってるイメージをアップデートしてみた。ところが、中々起動しない。起動してもすぐにエラーになってコンテナが落ちてしまう。
どうも、メモリー消費が激しくて、マシンのキャパをオーバーしてしまっているようだ(PlumeでLindera版を起動するとメモリー消費が激しい)。
しょうがないからこのコンコニではN-gramトークナイザーを使うことにした。空白文字でのトークナイザーよりは、日本語文書に対してはまだましだからね。環境変数
SEARCH_TAG_TOKENIZER=ngram
SEARCH_CONTENT_TOKENIZER=ngram
でトークナイザーを指定できる(ように以前パッチを送っておいた)。
さてこのメモリー問題、マシンのメモリーを増やす以外に解決策ないよな……。Plumeは一つのプロセス内でブログのウェブアプリケーションと検索エンジンを両方動かしていて、ウェブアプリの方からもRustの中で検索機能を呼び出している。なので単にPlumeを(日本語形態素解析器付きで)動かすだけで、検索機能用のメモリーが必要になってしまう。groonga-httpdとかElasticsearchみたいに、別マシンで動かしてHTTPで通信するタイプが広まるの、当たり前だよなあと思えてしまう……。
それにしてもLinderaトークナイザーはメモリー食い過ぎの気もする。調べたわけでもベンチマーク取ったわけでもないから只の言い掛かりだけども……。
Comments
No comments yet. Be the first to react!