使えそうなモノ
- Elasticsearch の Ingest Attachment processor
- 簡単な使い方
- Elasticsearch に↑の processor を使うように pipeline を定義しておく
- インテックス化したいファイルを base64 encode して、pipeline をクエリパラメータで指定しつつ index に put してあげる
- インデックス化されたときに、processor がファイルを解析した結果をフィールドに吐いてくれる
content_type
とか content
とか
- processor 自体は ingest node で動く
- そのままだと添付ファイルの内容がそのまま ES のストレージ内に入ってしまうため、必要に応じて解析された後、元のファイルのフィールドは削除してもいいかもしれない
- pipeline に以下の processor を設定しておくことで、ingest-attachment を通った後にフィールドを削除できそう
実装しないといけないこと
- 添付ファイルを追加したときに、ES 内でインデックス化できるようにする
- 検索結果ページで、引っかかった添付ファイルの表示
- どう表示してあげるのかいいかは要検討
- 閲覧権限についても考えないといけなさそう?
- 添付ファイルのインデックス機能の有効化/無効化の切り替え
- ingest-attachment plugin が入っているかチェックできるとなおよい
- 添付ファイルを対象とした rebuild index
- (やるかどうかは置いておいて) ES を添付ファイルのストレージとして指定できるようにする
- この機能を実装する場合、ES に添付ファイル全体を必ず一度は送らないといけない
- ingest した後にフィールドを消さずにそのままにすれば、ストレージとして活用できるんじゃないかという軽い考え