Mysoo2 站内搜索引擎安装指南
百度阿拉丁平台剑指垂直搜索
谷歌测试在搜索建议中放广告
谷歌与百度的八年“暗战”
Google公布2008年度搜索排行榜
传戴尔PC将放弃谷歌选择微软Live搜索引擎
雅虎高级搜索专家陆奇将任微软数字部门高管
微软不娶雅虎 只想买搜索业务
微软退出搜索市场能对Google造更大伤害
雅虎打造BOSS垂直搜索引擎
谷歌百度口水战升级 比拼"谁更懂中文"
从百度“竞价门”看企业的社会责任感
山寨版搜索引擎“百谷虎”雷倒网友
雅虎搜索技术高管跳槽至微软
面对“搜索门” 百度公司力挽声誉
内容更新频率对SEO的影响


 ·自建Web搜索引擎和站内搜索引擎攻略...
 ·自建Web搜索引擎和站内搜索引擎攻略...
 ·自建Web搜索引擎和站内搜索引擎攻略...
 ·现代汉语语料库加工手册(四)
 ·现代汉语语料库加工手册(三)





自建Web搜索引擎和站内搜索引擎攻略(四)


 共1页 

  第五章 基于Tomcat的Web服务器

  5.1什么是基于Tomcat的Web服务器

  Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Web服务器如何工作:在Web页面处理中大致可分为三个步骤,第一步,Web浏览器向一个特定的服务器发出Web页面请求;第二步,Web服务器接收到Web页面请求后,寻找所请求的Web页面,并将所请求的Web页面传送给Web浏览器;第三步,Web服务器接收到所请求的Web页面,并将它显示出来。

  Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat由Apache-Jakarta子项目支持并由来自开放性源代码Java社区的志愿者进行维护。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

  5.2用户接口设计

  5.3.1客户端设计

  一个良好的查询界面非常重要,例如Googl就以她简洁的查询界面而闻名。我在设计的时候也充分考虑了实用性和简洁性。

  5.3.2服务端设计

  主要利用JavaTM Servlet技术实现,用户通过GET方法从客户端向服务端提交查询条件,服务端通过Tomcat的Servlet容器接受并分析提交参数,再调用lucene的开发包进行搜索操作。最后把搜索的结果以HTTP消息包的形式发送至客户端,从而完成一次搜索操作。

  服务端Servlet程序的结构如下:

  实现的关键代码如下:

  public void Search(String qc, PrintWriter out) throws Exception {

   // 从索引目录创建索引

   IndexSearcher _searcher = new IndexSearcher("c:\\news\\index");

   // 创建标准分析器

   Analyzer analyzer = new ChineseAnalyzer();

   // 查询条件

   String line = qc;

   // Query是一个抽象类

   Query query = QueryParser.parse(line, "title", analyzer);

   out.println("<html>");

   out.println("<head><title>搜索结果</title></head>");

   out.println("<body bgcolor=#ffffff>");

   out.println("<center>" +

   "<form action='/NewsServer/results' method='get'>" +

   "<font face='华文中宋' color='#3399FF'>新闻搜索引擎</font>:" +

   "<input type='text' name='QueryContent' size='20'>" +

   "<input type='submit' name='submit' value='开始搜索'>" +

   "</form></center>"

   );

   out.println("<p>搜索关键字:<font color=red>" + query.toString("title") +

   "</font></p>");

   Hits hits = _searcher.search(query);

   out.println(" 总共找到<font color=red>" + hits.length() +

  "</font>条新闻<br/>");

   final int HITS_PER_PAGE = 10;

   for (int start = 0; start < hits.length(); start += HITS_PER_PAGE) {

   int end = Math.min(hits.length(), start + HITS_PER_PAGE);

   for (int i = start; i < end; i++) {

   Document doc = hits.doc(i);

   String url = doc.get("url");

   if (url != null) {

   out.println( (i + 1) + " <a href='" + url + "'>" +

   replace(doc.get("title"), qc) +

   "</a><br/>");}

   else {

   System.out.println("没有找到!");}

   }}

   out.println("</body></html>");

   _searcher.close();

   };

  5.3在Tomcat上部署项目

  Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中。

  在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。

  5.4小节

  本章中详细介绍了如何构架基于Tomcat的Web服务器,使得用户通过浏览器进行新闻的搜索,最后还对Tomcat如何部署进行了说明。

 共1页 

来源: | 作者: | 发表时间: 2006-12-13 10:30:00

 

 


Copyright © 2000-2008 Mysoo.com.cn, All Rights Reserved Mysoo.com.cn 版权所有                                  把Mysoo添加到 Google   沪ICP备06051139