Elasticsearch: 添付ファイル取り込みプラグイン

PPT、XLS、PDFファイルからElasticsearchへのデータ抽出方法

👋 Stackheroドキュメントへようこそ

Stackheroは、信頼性の高い検索、分析、ログ管理を大規模に必要とするプロフェッショナル向けに設計された、フルマネージドのElasticsearch cloudサービスを提供しています。

  • プライベートかつ専用インフラによる安定したパフォーマンスと強固なセキュリティ
  • HTTPSで保護されたカスタムドメイン名の簡単な設定。

すぐに利用を開始し、本来の業務に集中できますElasticsearch cloud hostingの本番環境を約5分で構築でき、日常的なメンテナンスやセキュリティ対策もお任せいただけます。

Ingest Attachmentプラグインは、PowerPointプレゼンテーション、Excelドキュメント、PDFなどのさまざまなファイル形式からメタデータとテキストを解析して抽出します。強力なテキスト抽出ライブラリであるApache Tikaを活用しています。サポートされている形式の詳細なリストについては、Tikaのウェブサイトをご覧ください。

このガイドは、プラグインの使用を開始するのに役立ちます。

まず、Stackhero Elasticsearch設定でプラグインを有効にします。

  1. StackheroダッシュボードのElasticsearchセクションに移動します。
  2. 利用可能なオプションからプラグインingest-attachmentを選択します。

StackheroダッシュボードStackheroダッシュボード

次に、Elasticsearchで添付ファイルのパイプラインを宣言します。この例では、抽出したいコンテンツがdataフィールドに格納されています。

PUT _ingest/pipeline/attachment
{
  "description": "添付情報を抽出する",
  "processors": [
    {
      "attachment": {
        "field": "data"
      }
    }
  ]
}

このコマンドを簡単にコピー&ペーストして実行するには、Kibanaの「Dev Tools」を使用することをお勧めします。

Dev tools KibanaDev tools Kibana

これで、添付ファイルを含むドキュメントをインデックス化できます。ドキュメントには、Base64でエンコードされたファイルコンテンツを保持するdataフィールドを含める必要があります。この例では、ドキュメントは「This is the content of an RTF file」という文を含むRTFファイルです。

PUT my_index/_doc/my_id?pipeline=attachment
{
  "data": "e1xydGYxXGFuc2kKVGhpcyBpcyB0aGUgY29udGVudCBvZiBhIFJURiBmaWxlClxwYXIgfQ=="
}

処理されたドキュメントを表示するには、そのIDを使用して取得します。

GET my_index/_doc/my_id

レスポンスは次のようになります。

{
  "_index" : "my_index",
  "_type" : "_doc",
  "_id" : "my_id",
  "_version" : 1,
  "found" : true,
  "_source" : {
    "data" : "e1xydGYxXGFuc2kKVGhpcyBpcyB0aGUgY29udGVudCBvZiBhIFJURiBmaWxlClxwYXIgfQ==",
    "attachment" : {
      "content_type" : "application/rtf",
      "language" : "en",
      "content" : "This is the content of a RTF file",
      "content_length" : 35
    }
  }
}

_sourceフィールドには、元のBase64データと、ファイルタイプやコンテンツなどの抽出された添付ファイルの詳細が含まれていることに注意してください。

Ingest Attachmentプラグインは、さまざまなファイル形式からコンテンツとメタデータを抽出するための強力で使いやすいツールです。Elasticsearchと直接統合され、シームレスなデータ取り込みを実現します。詳細については、公式ドキュメントをご参照ください。