java做什么的对服务器上所有Word⽂件做全⽂检索的解决⽅案-Java
⼀、背景介绍
Word⽂档与⽇常办公密不可分,在实际应⽤中,当某⼀⽂档服务器中有很多Word⽂档,假如有成千上万个⽂档时,⽤户查打开包含某些指定关键字的⽂档就变得很困难,⽬前这⼀问题没有好的解决⽅案,我个⼈能想到的解决⽅案是使⽤服务器端的Apache poi技术将所有⽂档的⽂本获取后存储到数据库,然后打开⽂档时利⽤sql语句检索⽂档是否包含关键字来判断是否是打开⽂档。但是这种解决办法有很⼤的弊端,⾸先poi技术对word⽂档⽀持不是很好,其中⽀持word的接⼝单⼀⽽且不太稳定,对word⽂档的格式也要求很⾼。其次如果将成千上万个⽂档使⽤poi将其⽂本内容存储到数据库这⼀操作将会在很⼤程度上影响服务器的性能。PageOffice提供了获取Word⽂档全⽂纯⽂本内容的属性接⼝,可以把整个word⽂件的纯⽂本内容保存到数据库,利⽤数据库sql语句检索⽂档是否包含关键字来实现这⼀需求。
⼆、主要实现代码
保存⽂件的同时获取Word⽂档中的纯⽂本⽂件并保存到数据库,因为每次保存word⽂件,数据库中都同步保存了word⽂件中的纯⽂本内容,所以只需对数据库中的⽂本内容做SQL查询即可实现对服务器上所有Word⽂件做全⽂检索。
FileSaver fs = new FileSaver(request, response);
String strDocumentText = fs.getDocumentText(); // 您可以把此⽂本字符串保存到数据库字段。保存到数据库的代码此处省略
fs.Session().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());
fs.Close();
三、此⽅案优势
PageOffice获取全⽂的纯⽂本⽂档是客户端执⾏的,这样就在很⼤程度上减轻了对服务器的压⼒,提⾼了服务器对客户端请求的响应速度。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论