我使用elasticsearch-mapper-attachments插件从文件中获取数据。有没有办法获得突出显示的字段的确切页码和行号?我目前的索引映射如下所示。
{
"type_name" : {
"content" : {"term_vector" : "with_positions_offsets"}
}
}
答案 0 :(得分:0)
我在Mapper Attachments插件中挖了一些,我发现它非常不灵活且无法解决。您还会混淆问题(索引/文本提取),这会使性能调整变得更加复杂。
首先:您最好安装Tika并自行提取文本(这也可能会提高性能,因为您不会通过HTTP将大型base64编码的BLOB发送到ES,并且您需要保留用于文本提取目的的单独堆/进程。)
第二:Is it possible to extract text by page for word/pdf files using Apache Tika?
第三:可能将每个页面编入索引作为单独的字段(例如" pdf_page_1"," pdf_page_2"等等),然后您可能会返回每个匹配的字段名称和因此能够检索您的点击的页码。
另一个可能更灵活的解决方案是:a)将PDF文件内容全部集中在一个字段(数组)中,如pdf_contents:["此处来自第1页",&#34 ;这里是第2页"],和b)为pdf文件内容创建一个单独的索引,将每个页面索引为单独的文档,包括页码的字段。
然后,对您的"规范"进行一次查询结果列表,当你有命中时,对pdf文件内容索引进行后续查询,过滤掉那些不在结果列表中的文档。