前提:pdf的内容是文字形式而不是图片形式!
一.方法
Elasticsearch实现pdf的全文检索,原理是将pdf转换为Base64,然后提取pdf的文字内容然后将其存储起来.
Elasticsearch已有相关Api提供,也给出了例子.链接如下:
我们来解读以下
//定制一个管道,用于将Base64转换为文字形式
PUT _ingest/pipeline/attachment
{"description" : "Extract attachment information", //管道的描述
"processors": [
{"attachment": {"field" : "data" //配置在哪个字段获取Base64数据,然后进行转换
}
}
]
}//后面我们索引文档的时候 ?pipeline=attachment,就要指定这个参数,表明索引一个文档的时候要
使用这个管道
PUT my_index/_doc/my_id?pipeline=attachment
{"data": "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0=" //base64数据
}
那么获取那篇刚刚索引的数据,返回的json就为
"attachment": {"content_type": "application/rtf","language": "ro","content": "Lorem ipsum dolor sit ame