fess-ingest-ndjsonを作る

fess-ingest-ndjsonを作ってみました。これは、elasticsearchに送っている内容を指定されたファイルに保存していく感じです。なので、クロールしている内容を別途保存しておきたいときとかに利用できるかなと。保存しておくことで、Pythonで読み込んで別の処理に使うとかもできるかと。

インストールしたあとはsystem.propertiesファイルに出力先とかを記述する必要があります。たとえば、

ingest.ndjson.path=/tmp
ingest.ndjson.max.lines=10000
ingest.ndjson.prefix=fess-

みたいに書いておけば、fess-*.ndjsonファイルができて、10000件ずつ保存されていきます。1クロール処理で切り替わるので、10000件に満たなければ、次には新しいファイルになります。あとは、titleとcontentだけを保存するのであれば、

ingest.ndjson.filter.keys=title,content

とすれば、それだけが出力されます。

という感じで、別な何かをしたいときとかに利用するものを生成するとかに使えるかなと思います。(というか、Pythonで読み込んで使おうかなと自分で思っていたから作った感じですけど・・・)

Fess 13.7.1のリリース

Fess 13.7.1をリリースしました。新しい機能としてはfess-ingestプラグインです。Ingesterを実装することで、インデックスされる前のデータを加工したり、ファイルに保存したりと、処理を差し込むことができます。サンプル的な実装はfess-ingest-loggerを参照してください。

他の変更点は細かなバグ修正をしたことと、elasticsearch 7.7.1に対応したことくらいでしょうか。そんな感じではありますが、利用してみてください。

fess-ingest-*の追加

クロールしている内容をインデクスする前にファイルに保存したり、書き換えたりとかしたくなったので、Fess Ingest機能を追加しました(名前はElasticsearchのIngest Nodeっぽくしたけど、機能的には関連性はありません…)。

とりあえず、サンプル的にログに内容を出力するシンプルなfess-ingest-loggerを作りました。必要なものはsrc/main以下にあるファイルくらいなので、説明するまでもない量ですね。クロールについては、Web/ファイルシステムとデータストアは仕組みが異なるため、それぞれのprocessメッソドを実装する必要があります。

あとは、mvn packageとかすれば、target以下にjarファイルができるので、それをFessのプラグイン画面からアップロードすると、fess-ingestとして認識されて、あとはクロール時に読み込まれて使われます。

という感じで、次のリリースにこれが入ります。