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
好吧,只是作为答案发布。干杯! –