FessでAD認証ログインに時間がかかる

FessでActive Directoryと連携したときにログインに時間がかかる事例がたまに報告される事象があったけど、これはユーザーにネストしたグループがあるときにADがその情報を返すのに時間がかかる場合があるのが原因でした。とはいえ、常にADのレスポンスが遅かったりするわけでもないようなので、ADを構築している環境なのか、条件があるようにも思います。この取得に数分かかったりするので、ログインに時間がかかる状態になります。

ということで、ネストしていないグループの情報を瞬時に取得できるので、ネストしているグループ情報取得はログイン後に遅延ロード的に反映されるのを仕様としておきます。次のリリースから反映されます。

Fess 13.6.2のリリース

13.6.1で同義語展開をbi-gramでもやったのだけど、問題があるケースがあったので、それを修正してリリースしました。結論的には、同義語展開時のbi-gramを展開するのはやめました…。なので、同義語の単語に内包される単語は同義語として、一緒に入れる必要があります。

ということで、Fess 13.6.2を使う際には、elasticsearchプラグインのanalysis-extension 7.6.2を使っていただければと思います。旧バージョンのインデックスを利用する場合は、管理画面のメンテナンスで再インデクシングを実行してください。

何かあれば、フォーラムに投げてください。

mitigating potential DNS violation DVE-2018-0001

Ubuntu 18.04でsyslogをみると

Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

みたいなログが出ているのだが、systemd-resolvedが名前解決をできていないらしい。

# rm /etc/resolv.conf
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
# systemctl restart systemd-resolved.service

としておくと良い。

Fess 13.6.1のリリース

Fess 13.6.1をリリースしました。バグフィックス的な修正がほとんどだった気もしますが、1つ影響がありそうな変更としては、同義語の処理を変更してます。standard_analyzerがいままで、複数を展開していたのですが、展開するのはやめて、インデックスでは1つの単語に寄せるようにしました。さらに、今までの処理だと同義語登録した単語に内包される単語が検索できなくなっていたのですが、それをbi-gramで展開するようにもしてみました。なので、同義語処理まわりが改善できたかなと思います。次のリリースに入れるでも良かった気もしますが、商用でもこのバージョンを使いたかったので…。

その他の改善系だと、インデクシング時にElasticsearchに投げる前のドキュメントをメモリに保存しているのですが、どれくらい保存するかがcontent lengthの情報に頼っていたので、実際のヒープメモリの使用量と乖離がある場合があったのですが、ヒープ使用量を見積もって、Elasticsearchに投げるようにしました。なので、データストアクロールとかで予期しないOOMとかが回避できるかと思います。

そんな感じで改善をおこなったので、利用してみてください。何かあれば、フォーラムに投げてもらえればと。

同義語処理の変更

Fessはstandard_analyzerで同義語を展開して検索できるようにしていますが、次のリリースで処理をちょっと見直そうしています。

現在は、A, Bを同義語として登録した場合、インデックスにはAとBが登録されます。これをAだけにする予定です。つまり、同義語展開してインデックスをしないようにします。これにより、インデックスサイズを減らす想定です。(まぁ、微々たるものなので、ほとんど減らないと思いますが…)

あとは、現状だと、同義語に内包されている単語がヒットできないのですが、同義語処理前の元の単語に内包される単語にヒットできるようにする予定です。なので、長い単語を登録したときとかにヒットしない問題を解決します。

そんなわけで、fessインデックスの設定が変わるのと、elasticsearch-analysis-extensionプラグインの更新で対応する予定です。