用Java+MySQL+PHP轻松构建跨平台的搜索引擎 - 编程入门网
用Java+MySQL+PHP轻松构建跨平台的搜索引擎时间:2010-07-19此搜索引擎适于在一个中等规模的局域网中使用,由于找到的网页存在数据库中,不仅可以索静态的Html页面,可以搜索PHP、ASP等动态页面。对于一个拥有5万个网页的系统(使用PII-400作为服务器),搜索响应时间在2-10秒左右,完全可以满足要求,由于Java、mysql、PHP都是跨平台的软件,所以此搜索引擎不仅可以工作在Windows服务器上,而且也可以工作在Linux等其他系统中。 一、建立搜索引擎需要的数据库和数据表。 首先建立数据库: c:\mysql\bin\> mysqladmin -uroot -pmypasswd create Spider 然后建立数据库中的表结构 c:\mysql\bin\> mysql -uroot -pmypasswd Spider < Spider.mysql 其中Spider.mysql为一个文本文件,其内容如下:
# 本局域网的初始主页地址,搜索蜘蛛从此网址开始搜索所有其他网页 INSERT INTO link VALUES( ''1'', ''HTTP://102.211.69.1/'', ''0'', ''0''); # 数据表 webpagelocal 用来存放下载的所有的网页
# 数据表 webpagefindfast # 用MakeFast.php从表webpagelocal中提取512字节的检索信息存放其中
用Java+MySQL+PHP轻松构建跨平台的搜索引擎(2)时间:2010-07-19二、以下为搜索网页和下载网页至本地数据库的Java程序LinkToDB.java,它也是此搜索引擎的核心和基础 /***************************** LinkToDB.java *********************************** * * 对URL中的http链接进行分析,将相对路径转换为绝对路径,排序方式输出结果到数据库 * * 假如分析得到的URL是Link表中唯一的,就将其内容下载到表 WebPageLocal 中。 * ******************************************************************************** / import java.io.*; import java.util.*; import java.net.*; import java.lang.String; import java.sql.*; import java.text.*; class Counter { private int i = 1; int read() { return i; } void increment() { i++; } } public class LinkToDB { String UrlHost = ""; String UrlFile = ""; String UrlPath = ""; static String StartWith = null; boolean outsideTag = true; //判定是否在标记之中 static char[] buffer = new char[4096]; // 缓冲区:用于保存从 URL 读的数据 InputStreamReader read = null; BufferedReader reader = null; URLConnection UC = null; private URL url = null; private StreamTokenizer st; private TreeMap counts = new TreeMap();//以排序方式保存找到的链接 LinkToDB(String myurl,String StartOnly){ try { StartWith = StartOnly; if(StartOnly!=null) { if(!myurl.startsWith(StartOnly)) return; }//只搜索此网站 url = new URL(myurl); UrlHost = url.getHost(); UrlHost = UrlHost.toUpperCase(); UrlFile = url.getFile(); int v=UrlFile.lastIndexOf(" |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |