Elasticsearch: Ingest attachment 插件

如何從 PPT、XLS 和 PDF 文件中提取數據到 Elasticsearch

👋 歡迎來到 Stackhero 文件!

Stackhero 提供即用型的 Elasticsearch cloud 解決方案,帶來多項優勢,包括:

  • 專用私有 VM提供的最佳性能和強大的安全性
  • 支援 HTTPS 加密的可自訂域名

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Elasticsearch cloud hosting 解決方案!

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" 來簡單地複製/粘貼執行此命令。

Kibana 開發工具Kibana 開發工具

現在您可以索引包含附件的文件。該文件應包括一個 data 字段,其中包含以 Base64 編碼的文件內容。在此示例中,該文件是一個 RTF 文件,包含句子 "This is the content of an RTF file":

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 集成,以實現無縫的數據攝取。欲了解更多信息,請參閱 官方文檔