对服务器上所有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.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());
fs.Close();
三、此方案优势
PageOffice获取全文的纯文本文档是客户端执行的,这样就在很大程度上减轻了对服务器的压力,提高了服务器对客户端请求的响应速度。
对服务器上所有Word文件做全文检索的解决方案-Java的更多相关文章
- 向linux服务器上传下载文件方式收集
		
向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ...
 - 使用批处理文件在FTP服务器 上传下载文件
		
1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt 192.168.1.1 建立一个 ...
 - SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
		
1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...
 - 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案
		
使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...
 - asp.net检查服务器上目录或文件是否存在示例
		
原文 asp.net检查服务器上目录或文件是否存在示例 asp.net为我们提供了文件系统对象了,对于目录与文件判断是否存在我们有System.IO.File.Exists与System.IO.Dir ...
 - 用winscp从本地上传文件到服务器上出现复制文件到远端时错误。
		
用winscp从本地上传文件到服务器上出现复制文件到远端时错误. 错误码:4 服务器返回的错误消息:write failed 报错如下图所示: 分析过程: 1.刚开始以为是权限不够,后面上网查了一下是 ...
 - 在linux云服务器上运行Jar文件
		
在linux服务器上运行Jar文件时通常的方法是: $ java -jar test.jar 这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台 ...
 - Linux下不借助工具实现远程linux服务器上传下载文件
		
# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...
 - ASP.NET MVC  播放远程服务器上的MP3文件
		
问题: 做需求遇到需要播放远程服务器上的MP3音频,使用FTP去获取文件.但是一般都是在页面 <audio> 的src 中直接写文件地址来播放音频.实在不想做临时文件,折腾了半天终于可以通 ...
 
随机推荐
- Microsoft SQL Server 2005技术内幕:存储引擎笔记
			
http://www.cnblogs.com/lyhabc/articles/3942053.html
 - 漫谈深度学习时代点击率预估技术进展 &&深度学习在推荐系统上的发展
			
转载:https://www.infoq.cn/article/XA055tpFrprUy*0UBdCb https://www.zhihu.com/question/20830906/answer/ ...
 - POJ3592  Instantaneous Transference    强连通+最长路
			
题目链接: id=3592">poj3592 题意: 给出一幅n X m的二维地图,每一个格子可能是矿区,障碍,或者传送点 用不同的字符表示: 有一辆矿车从地图的左上角(0,0)出发, ...
 - mysql  授权新的root用户
			
grant all privileges to *.* on system@'localhost' identified by 'woshishui' with grant option;
 - C++虚继承的概念(转)
			
http://blog.csdn.net/wangxingbao4227/article/details/6772579 C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同 ...
 - Django开发微信公众平台
			
处理微信发来的信息,实际上就是处理xml的过程.先写xml工具类 # -*- coding:utf-8 -*- from xml.dom import minidom from Web.model.W ...
 - SD 卡PIN定义
			
转载:http://blog.sina.com.cn/s/blog_56e19aa70101avnw.html SD卡和TF卡接口引脚定义
 - Spark技术内幕: Task向Executor提交的源代码解析
			
在上文<Spark技术内幕:Stage划分及提交源代码分析>中,我们分析了Stage的生成和提交.可是Stage的提交,仅仅是DAGScheduler完毕了对DAG的划分,生成了一个计算拓 ...
 - 服务管理-Apache
			
WEB服务器介绍 web server 有两个意思: 一台负责提供网页的服务器,通过HTTP协议传给客户端(一般是指网页浏览器). 一个提供网页的服务器程序. 常见的WEB服务器 Apache是世界使 ...
 - Logistic Regression 笔记与理解
			
Logistic Regression 笔记与理解 Logistic Regression Hypothesis 记为 H(theta) H(theta)=g(z) 当中g(z),是一个叫做Logis ...