需求:几千个pdf版电子规范,如何实现提供全文检索服务呢?
市面上有类似的应用。自己动手的话有这样的思路,代码几百行,见开源代码
缺点:关键词搜索后,无法定位到规范的那一页,只能知道是在哪个规范里。浏览器打开那个规范后,再次ctrl+F查找。
第一步:海量pdf的识别。adobe acrobat pro是全世界最好的识别中文的软件,没有之一。走的弯路比如用myocrpdf,命令行进行识别,效果比前者还是差(如下图),但是基本可用。但前者不支持命令行,也没找到调用的API,用automate自动操作程序?或appscript模拟点击按钮?

另外,识别不是提取pdf文字,识别后还是pdf文件,但是里面的文字可以选择了。而提取文字也是首先要识别,但不一定能够放回原来的pdf上。
解决方案:用adobe acrobat pro的“动作”,如下图去设置即可。设置好动作,文件夹内的所有pdf都会识别,保存到另外一个文件夹了。

第二步:docker安装elasticsearch和tika及ik,见

中文全文检索技术路线(elasticsearch全文检索、中文分词ik、tika解析文档)https://blog.csdn.net/hotqin888/article/details/120831208https://blog.csdn.net/hotqin888/article/details/120831208第三步:上传engineercmshttps://github.com/3xxxhttps://github.com/3xxx系统自动用tika提取pdf中的文字,存入elasticsearch,进行ik中文分词。在engineercms里进行全文检索即可。
总结:都是利用目前这些已有的服务,进行组合。避免自己写全文检索,这个不简单,传统的数据库中全文检索用sql模糊查询语句是非常不合适的,开始不理解这个。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐