2018年8月25日土曜日

FESSとkuromoji.txt

FESSのtakenizerは、ユーザーが辞書を拡張できるようになっています。
UIの「システム」→「辞書」から「ja/kuromoji.txt」を選ぶと、トークンの登録画面になります。

作業は簡単ですが、同じトークンを多重に登録すると、インデックスが更新できなくなる、けっこう大きなトラブルが発生します。

トークンを多重に登録してしまうと、fess.yyyymmddのレプリカシャードが落ち、インデックスの更新が止まります。

こうなった時は、まず落ち着いてください。
やってはいけないのは、以下の作業です。
・ノードの再起動
・close index

まず、動いているすべてのクローラーを停止させます。
続いて、kuromoji.txtをダウンロードし、重複しているトークンを取り除きます。
改修したkuromoji.txtをアップロードします。

fess.yyyymmddのレプリカシャード数を0にして、ひと呼吸おいてから1に戻します。
これで、レプリカが復帰したら当たりです。

このとき、レプリカのindexが100%になったのに、translogがいつまで経っても0.0%でスタックすることもあります。
このときは、僕はあきらめて新しい空のインデックスを作り、_reindexで複製します。

kuromoji.txtは、UIから簡単にアクセスできるのですが、システム内部に直接手を入れるもののため、慎重に作業してください。