在项目中集成GoogleDesktop全文检索

在项目中集成GoogleDesktop,提供全文检索能力文章来源:转载点击数:394更新时间:2006-3-2319:07:45在项目中,需要对客户资料和文件进行全文检索。考虑到GoogleDesktop强大的检索能力,决定把它集成到项目中,从而简化项目方案,加快进度。1、用户从Client端浏览器中发出查询请求,例如:“http://server:8080/search.jsp?keyword=网络管理”2、search.jsp构建出特殊的URL,访问GoogleDesktop:“http://127.0.0.1:4664/search&s=C4gKVsZ-bAyBaEwxsW2FKoAAqr0&q=%E7%BD%91%E7%BB%9C%E7%AE%A1%E7%90%86”其中:(1)127.0.0.1是本机的IP地址,4664是GoogleDesktop的监听端口号;(2)“search&s=C4gKVsZ-bAyBaEwxsW2FKoAAqr0”是GoogleDesktop的特殊参数,注:“s=”后边的内容,不同的机器内容不一样,暂且称之为serial,下文中有说明;(3)“q=%E7%BD%91%E7%BB%9C%E7%AE%A1%E7%90%86”是被搜索的关键词,“网络管理”的UTF-8编码,再经过java.net.URLEncoder.encode()之后的结果;3、GoogleDesktop从本地硬盘上(假定是E:\Docs)的资料中检索出符合条件的数据;(实际上这是事先就建好索引,并不是被调用时再去读取的)4、GoogleDesktop把结果返回给search.jsp。这是一个UTF-8编码的大字符串;5、search.jsp把检索结果进行一系列处理后(例如去掉Google的LOGO、权限过滤、格式调整、文件名变换、超级链接重定位等),返回给客户端浏览器。有一件事是要做的:把检索结果中形如“E:\Docs\abc.doc”的文件路径换成“/getfile.jsp?filename=abc.doc”,否则客户端打不开该链接;6、客户单击了那些他感兴趣的文档资料的链接,该链接形如:“http://server:8080/getfile.jsp?filename=abc.doc”7、getfile.jsp从本地硬盘(E:\Docs)中读出abc.doc。(在读出之前,可以加入权限判断功能,检查当前用户是否具备访问abc.doc的权限)8、getfile.jsp以二进制的方式把文件内容(abc.doc)返回给Client端浏览器,浏览器将根据文件的类型自动调用相关联的Windows程序(MSWord)打开文件。本方案的关键之处是在第2步中构建合理的URL。而该URL中,比较困难的是“search&s=C4gKVsZ-bAyBaEwxsW2FKoAAqr0”。该内容在不同的机器上,可能不一样,但在同一台机器上,却是固定的,所以只需要手工寻找一次即可。寻找该serial的方法是:1、在安装了GoogleDesktop的服务器上,双击屏幕右下角的GoogleDesktop图标,系统将自动打开IE,并出现桌面搜索的主页面;同时在IE的地址栏中将出现形如“http://127.0.0.1:4664/&s=UNBXCjdtJHM6yrJXNAfPo4xw6eQ”的URL;2、在主页面上的空白处单击鼠标右键,“查看源文件”,并查找类似于“<FORMname=fmethod=GETaction='/search&s=C4gKVsZ-bAyBaEwxsW2FKoAAqr0'>”的代码,看见了吧?“action=”后边的那一串,就是要寻找的目标;本演示方案中,共涉及两个JSP文件:1、search.jsp:负责构建正确的URL,并对返回的结果作出分析、过滤、替换、权限检查等操作;2、getfile.jsp:负责检查权限,然后从硬盘上读取相关的文件资料,返回给客户端;由于我还不太会用赛迪的BLOG,不知道如何实现图文混排(试了一次,好象不成功),所以在此只给出关键代码的示例,search.jsp可仿照着写:importjava.io.InputStream;importjava.io.ByteArrayOutputStream;importjava.io.FileOutputStream;importjava.net.HttpURLConnection;importjava.net.URL;publicclassGoogleDesktopConnect{/*这就是双击屏幕右下角的GoogleDesktop图标后,出现在IE地址栏中的内容*/privatestaticStringurlInit="http://127.0.0.1:4664/&s=UNBXCjdtJHM6yrJXNAfPo4xw6eQ";/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStringword="网络管理";GoogleDesktopConnectgoogle=newGoogleDesktopConnect();google.connect(urlInit,word);}privatevoidconnect(StringstrStartURL,Stringword){try{/*从首页中自动分析出search&s=C4gKVsZ-bAyBaEwxsW2FKoAAqr0*/Stringserial=getSerial(strStartURL);System.out.println("serial="+serial);/*构建合适的URL*/StringnewWord=java....

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?