2017-04-03 66 views
2

我有一個在elasticsearch中創建的管道,它用一組pdf來獲取文檔。我想修改內容字段以便連接其他字段以便進行搜索。修改已獲取pdf的內容

我的管道:

client.ingest.putPipeline({ 
    id: 'my-pipeline-id', 
    body: { 
    "description" : "Extract attachment information", 
    "processors" : 
    [ 
     { 
     "foreach": { 
      "field": "attachments", 
      "processor": { 
      "attachment": { 
       "target_field": "_ingest._value.attachment", 
       "field": "_ingest._value.data" 
      } 
      } 
     } 
     } 
    ] 
    } 
}, callback); 

我不能添加一組處理器的foreach後,因爲我需要訪問,以便把該文檔的值,在結束每一個PDF格式的內容內容。

一些示例文件是:

let doc = { 
    matricula: '6789AAA', 
    bastidor: 'BASTIDOR789', 
    expediente: '79', 
    attachments: 
    [ 
     { 
      filename: "informe", 
      data: /* chunk of data in base64 */ 
     }, 
     { 
      filename: "ivtm_diba", 
      data: /* another chunk of data in base64 */ 
     } 
    ] 
}; 

結果文件看起來就像這樣:

{ 
    "_index": "doc", 
    "_type": "document", 
    "_id": "AVsy85rwMuPe74hQBT8L", 
    "_score": 1.2039728, 
    "_source": { 
     "attachments": [ 
     { 
      "filename": "informe", 
      "attachment": { 
      "Very very long content", 
      "date": "2016-06-08T14:01:25Z", 
      "content_type": "application/pdf", 
      "language": "es", 
      "content_length": 3124 
      } 
     }, 
     { 
      "filename": "ivtm_diba", 
      "attachment": { 
      "content": "Very long content here", 
      "content_type": "application/pdf", 
      "language": "ca", 
      "content_length": 5657 
      } 
     } 
     ], 
     "expediente": "79", 
     "matricula": "6789ZXC", 
     "bastidor": "BASTIDOR789" 
    } 
    } 

我要添加到內容領域的「bastidor」,「matricula」的價值和「expediente」領域。

我使用的是elasticsearch-js,但這不是必需的。

+1

嗨,你可能知道它,但以防萬一,是不是所有的領域足夠你需要什麼?它已經在那裏,你也可以定製它。 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html。如果_all不夠,那麼你可以創建一個額外的域與其他域的連接,基本上你需要的是在映射中定義它並使用腳本。但我有一種感覺,_all字段可能足以滿足您的需求(只是搜索)。 –

+0

說真的,我不知道爲什麼我沒有考慮_all,但是是的,這是我的問題的正確解決方案。謝謝! 請提交您的評論作爲一個真正的答案,以接受它。 – Kangcor

+1

好吧,只是作爲答案發布。乾杯! –

回答