快速业务通道

用Java+MySQL+PHP轻松构建跨平台的搜索引擎 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

用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为一个文本文件,其内容如下:

CREATE TABLE link ( Id int(10) unsigned NOT NULL auto_increment, Url varchar(120) NOT NULL, Class tinyint(3) unsigned NOT NULL default 0 , IsSearchLink tinyint(3) unsigned default 0, PRIMARY KEY (Url), UNIQUE Id (Id), KEY Url (Url), KEY Class (Class) );

# 本局域网的初始主页地址,搜索蜘蛛从此网址开始搜索所有其他网页

INSERT INTO link VALUES( ''1'', ''HTTP://102.211.69.1/'', ''0'', ''0'');

# 数据表 webpagelocal 用来存放下载的所有的网页

CREATE TABLE webpagelocal ( Id int(10) unsigned NOT NULL auto_increment, Url varchar(120) NOT NULL, Content text NOT NULL, PRIMARY KEY (Url), UNIQUE Id (Id), KEY Url (Url) );

# 数据表 webpagefindfast

# 用MakeFast.php从表webpagelocal中提取512字节的检索信息存放其中

CREATE TABLE webpagefindfast ( Id int(10) unsigned NOT NULL, Url varchar(120) NOT NULL, Title varchar(64), Content blob, PRIMARY KEY (Url), KEY Url (Url), KEY Title (Title) );

用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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号