java 文本检索_对服务器上所有Word文件做全文检索的解决方案-Java

一、背景介绍

Word文档与日常办公密不可分,在实际应用中,当某一文档服务器中有很多Word文档,假如有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,目前这一问题没有好的解决方案,我个人能想到的解决方案是使用服务器端的Apache poi技术将所有文档的文本获取后存储到数据库,然后打开文档时利用sql语句检索文档是否包含关键字来判断是否是打开文档。但是这种解决办法有很大的弊端,首先poi技术对word文档支持不是很好,其中支持word的接口单一而且不太稳定,对word文档的格式也要求很高。其次如果将成千上万个文档使用poi将其文本内容存储到数据库这一操作将会在很大程度上影响服务器的性能。PageOffice提供了获取Word文档全文纯文本内容的属性接口,可以把整个word文件的纯文本内容保存到数据库,利用数据库sql语句检索文档是否包含关键字来实现这一需求。

二、主要实现代码

保存文件的同时获取Word文档中的纯文本文件并保存到数据库,因为每次保存word文件,数据库中都同步保存了word文件中的纯文本内容,所以只需对数据库中的文本内容做SQL查询即可实现对服务器上所有Word文件做全文检索。

FileSaver fs = newFileSaver(request, response);

String strDocumentText= fs.getDocumentText();  //您可以把此文本字符串保存到数据库字段。保存到数据库的代码此处省略

fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") +   "/" +fs.getFileName());

fs.Close();

三、此方案优势

PageOffice获取全文的纯文本文档是客户端执行的,这样就在很大程度上减轻了对服务器的压力,提高了服务器对客户端请求的响应速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值