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,但這不是必需的。
嗨,你可能知道它,但以防萬一,是不是所有的領域足夠你需要什麼?它已經在那裏,你也可以定製它。 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html。如果_all不夠,那麼你可以創建一個額外的域與其他域的連接,基本上你需要的是在映射中定義它並使用腳本。但我有一種感覺,_all字段可能足以滿足您的需求(只是搜索)。 –
說真的,我不知道爲什麼我沒有考慮_all,但是是的,這是我的問題的正確解決方案。謝謝! 請提交您的評論作爲一個真正的答案,以接受它。 – Kangcor
好吧,只是作爲答案發布。乾杯! –