- 博客(40)
- 资源 (37)
- 收藏
- 关注
原创 Lucene源代码之高亮显示《三》
本篇为高亮显示源代码中最具重量级别的一个类。我现在只是把代码看了一遍,小的地方理解了一点,但仍然还未从整体上把握全局。package org.apache.lucene.search.highlight;import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;
2008-10-20 22:00:00 1674
原创 Lucene源代码之高亮显示《二》
纵观:package org.apache.lucene.search.highlight;import java.util.HashMap;import java.util.HashSet;import org.apache.lucene.analysis.Token;import org.apache.lucene.index.IndexReader;
2008-10-20 10:13:00 1280 1
原创 Lucene源代码之高亮显示《一》
慢慢开始读Lucene源代码,首先就从高亮显示开始吧,因为最近才看过这个,而且好像是新版本后来加上的。我的方案:从实例逐一解决源代码。需要分析的实例代码:package org.apache.lucene.search.highlight;import java.io.IOException;import java.io.StringReader;impo
2008-10-19 22:07:00 1259
原创 求有序整数集合a和b的交集函数
问题描述:有两个有序整数集合a和b,写一个函数找出它们的交集?几种解决方案:一:import java.util.Arrays;public class Test { public static void main(String args[]){ int[] b = {4, 6, 7, 7, 7, 7, 8, 8, 9, 10, 1
2008-10-19 20:31:00 1482 4
原创 桌上喝酒的规矩
第一原则:如果自己不能喝,丫就别开始第一口,自己端着饭碗夹了菜一边吃着去。 第二原则:如果确信自己要喝,就别装墨迹,接下来就是规矩了。 【规矩】 规矩一,酒桌上虽然“感情深,一口闷;感情浅,舔一舔”但是喝酒时决不能把这句话挂在嘴上。 规矩二,韬光养晦,厚积薄发,切不可一上酒桌就充大。 规矩三,领导相互喝完才轮到自己敬。 规矩四,可以多人敬一人,决不可一人敬多人,
2008-10-18 22:54:00 968
原创 读《Ajax+Lucene构建搜索引擎》后的感想
早就借了这本书,经过了半年的时间,今天终于得空把这种书浏览了一下。首先总体评价一下:内容已经过时了。想当年好像用到过本书的一个google suggest的例子,但最终由于中文问题被搁置了。看了后面的lucene我的收获:one;调整性能参数。1,mergeFactor。它用于控制mergeFactor写入磁盘上的文件系统的最大Document数量,同时控制内存中Segement的
2008-10-17 19:33:00 846
原创 Eclipse导入文件
这个太简单了,首先打开file->import.如下图: 接着选择exsiting projects to workplace.如下图: OK!导出反之。
2008-10-17 19:24:00 521
原创 Mysql连接错误
昨天还运行好好的,今天运行出错!怪哉怪哉!错误信息如下:com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: com.mysql.jdbc.Comm
2008-10-16 10:26:00 1971
原创 清一色‘body’ 全文剖
对于不同服务器名的站点,可以把全文内容都抓取下来。然后根据高亮显示的提示,从内容中截取一定的长度。其实,本来最主要的问题就是对抓取的网页进行分类,尤其是标题的选择。其他均次之。记录了一下自己写的代码(校内):package com.extractor.hangdian;import java.io.BufferedWriter;import java.io.File;
2008-10-15 18:23:00 515
原创 Mysql导入导出.sql文件
首先转帖一下别人感觉还不错。步骤如下:一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=“;path/mysql/bin;”其中path为MYSQL的安装路径。二.简单的介绍一下命令行进入MYSQL的方法:1.C:/>mysql -h hostname -u username -p 按ENTER键,等待然后输入密码。这里hostname为服务器的
2008-10-14 10:36:00 1046
原创 只有.frm 没有.myd和.myi
MYSQL的默认DB引擎是innodbinnodb表没有没有myd和.myi,其数据文件对应于ibdata1。确认是否为innodb引擎:进入你的mysql数据库(不管你是用phpmyadmin还是mysql命令行)mysql> use 数据库名mysql>show tables;mysql>show table status like 数据库表名如果type=innodb的话你就可以转换表引
2008-10-13 22:31:00 890
原创 打包.war文件
打包*.war文件将用eclipse做好一个完整的WEB应用系统编译打包成一个*.war文件(该文件能转换至tomcat等非eclipse环境下运行)的文件及步骤:1.首先要确定该WEB系统在eclipse下能正常运行并测试通过; 2.将eclipse下该WEB系统工程文件夹(设文件夹名为project)下build/classes/下的所有文件(主要包括*.class和*.prope
2008-10-13 22:28:00 2210 2
原创 我读《搜索引擎营销秘笈》有感
随便看了一下《搜索引擎营销秘笈》,他让我了解到了一些通过对网站的优化可以提高网站在搜索引擎中的排名,比如说网站的域名选择,网页的部署,以及关键词的定义。但总体来说空套的话一大堆,实质的内容没有。http://www.chinaz.com/;这个网站还不错 最后总体评价:垃圾书一本。
2008-10-12 12:03:00 537
原创 提取一个网页内的所有链接
看上去可能没有什么用,但对于做小东西来说还是有点用处的。比如把这些链接放到Heritrix里面进行统一抓取。在这里,我只是简单记录一下,没什么实质的内容:代码如下:public void extract() { BufferedWriter bw=null; String title="hangdian";
2008-10-12 11:43:00 913
原创 不同标签的信息提取
由上一篇文章也可知:与恰好相反。 但是我们要提取他们里面的同一类型内容(时间),具体信息如下:1730发布时间:2005-11-1 15:08:16;作者:lm 日期:2007-04-05。尝试了很多办法,都没有成功。适用于第一个信息的方法不适合第二个,反之亦然。最后通过打印出node节点的详细信息后,我才顺利完成任务。具体解决方法如下:Node time_nod
2008-10-12 11:22:00 561
原创 网页信息提取的两种方式
网页信息的提取是一个很大的研究课题,可能涉及到并行计算、人工智能、机器学习等领域。今天,我们来学一下如何用正则表达式和HTMLParser提取网页内容。正则表达式:基本格式:Pattern pattern=Pattern.compile(匹配表达式,flag);Matcher mc=pattern.matcher(匹配域)while(mc.find()){
2008-10-11 21:18:00 2387
原创 lucene 关键词高亮显示
使用Lucene自带的Highlighter就可以实现对原始文件摘要的提取工作。Highlighter类有一个getBestFragment方法,这个方法有多个重载的方法,其中,使用:public final String getBestFragment(Analyzer analyzer, String fieldName,String text)就可以提取摘要,它实现了从指定的原
2008-10-10 21:43:00 1377
原创 abstract类与继承
Abstract:关键字abstract是与final具有完全相反的作用。抽象类中的成员变量是所有其子类共有的属性。抽象类不能进行实例化,即不能进行 new Car()之类的操作。不能把一个类同时标识为abstract和final。抽象方法是只有方法声明,没有方法体,用‘,’表示声明结束。抽象方法只能存在抽象的类中。当然抽象的类中是可以有非抽象方法的,抽象类中的非抽象方法
2008-10-07 14:26:00 1465
原创 HTMLPage类的说明
HTMLPage类:HTMLPage类中主要也就几种用途,而从HTMLPage类中抓取图片是一个非常重要的一个功能,诚然还有超链接和表单。而在HTMLPage类的内置类Parser中,大部分工作都是由handleSimpleTag(简单标签)和和handleStartTag(起始标签方法来完成。详细代码清单如下:package com.heaton.bot;import
2008-10-05 16:39:00 1432
原创 从一个网页中获取图片
GetImage类:怎么说呢,如果你不研究底层一点的东西(其实这里指的是htmlpage类),直接调用还是比较简单的。代码如下:import java.awt.*;import java.util.*;import javax.swing.*;import java.io.*;import com.heaton.bot.*;/** * This
2008-10-05 15:49:00 1094
原创 完整的WatchRedhome程序
WatchRedhome程序:代码看上去可能比较乱,但是已经把原来那些有warning或deprecated的方法都已改正。效果如下:详细代码如下:import java.awt.Dimension; import java.awt.Insets; import java.text.DateFormat;import java.text.ParseExcept
2008-10-05 13:50:00 630
原创 供调试WatchBBS
调试WatchBBS:去掉swing部分,稍微修改了一下代码。调试结果:成功!理解代码程度:中详细代码:import java.util.Date;import javax.swing.SwingUtilities;import com.heaton.bot.HTMLParser;import com.heaton.bot.HTMLTag;im
2008-10-05 11:27:00 763
原创 构造Bot程序WatchBBS
Bot程序WatchBBS:主要目的:时刻洞悉某个论坛有新消息粘贴。实现方法:剖析网页,通过对最新时间的对比来得出结论。详细代码:import java.awt.Dimension;import java.awt.Insets;import java.util.Date;import javax.swing.JOptionPane;import jav
2008-10-05 09:25:00 725
原创 htmlparser网页解析实例
今天又看了一下htmlparser对网页的解析,发现越看越不会,例如吧,有以下两个网页:2005-2-25 11:06:27和作者:蜘蛛日期:2007-09-20看上去吧格式相同啊!为什么总是不能用同一种方法把它们解析呢??????看一下代码吧;import java.io.BufferedWriter;import java.io.File;import j
2008-10-04 20:01:00 2859
原创 HTTPSocket类和SocketFactory类的实现
HTTPSocket类、SocketFactory:HTTPSocket类继承了HTTP类中lowLevelSend的抽象方法。下面简单分析一下lowLevelSend方法:1,如何建立连接(通过URL)注:如果要求HTTPS连接,则使用SSL打开连接。2,确定请求是“GET”还是“POST”,处理所有的客户端标题。3,读完标题之后,对它们进行解析(必须),然后再读入真正
2008-10-03 15:40:00 3535
原创 HTTP类的实现
HTTP类:本类里面最后重要的方法为send方法,send方法是使用Bot包的程序进入HTTP类的主要入口点。通过请求Web服务器检索并发送数据。send方法会启动一个称为lowLevelSend发送命令。send方法主要负责Cookie和自动重定向ixangde管理。详细代码清单如下:package com.heaton.bot;import java.util
2008-10-03 15:14:00 1334
原创 使用ViewURLCookie分析Cookie
ViewURLCookie:通过使用ViewURLCookie这个新例程,我们就可以分析给定URL返回的Cookie;效果如下: 实现代码如下:import java.awt.*;import javax.swing.*;import javax.swing.table.*;import com.heaton.bot.*;/** * Thi
2008-10-03 10:13:00 565
原创 HtmlParser类的说明
HtmlParser类:这是一个处理网页源文件的类。这里涉及到了比较底层的东西。由于现在无法调试,而且无碍大局,暂时就不深究它了。没事的时候可以看看:/** * The HTMLParse class is used to parse an HTML page. It is * just a utility class, and does NOT store any
2008-10-02 20:43:00 767
原创 Parse类的处理
Parse类:顾名思义,Parse类主要用于解析名称/值对。可以解析Cookie,也可以用于解析HTML。而在编写Spider程序时,在Http中提及的HttpParser的父类就是Parse。Parse类源代码里面的一些变量名都让人费解啊;代码清单如下:/** * The Parse class is the low-level text parsing class
2008-10-02 20:18:00 623
原创 HtmlTag类的实现
HtmlTag类:我左看右看,上看下看,都没发现这个HtmlTag类到底有什么出奇的地方。除了增加了一个getAttributeValue方法外,其他的可以说完全是剽窃AttributeList类。代码清单:/** * The HTMLTag class is used to store an HTML tag. This * includes the tag na
2008-10-02 16:10:00 692
原创 AttributeList类的实现
AttributeList类:前面说到过Attribute类,而现在是AttributeList类,有什么关系呢。我的理解是:把Attribute看成是一个一维数组,而AttributeList就是一个二维数组。其中两个比较常用的方法是:1,get(int id)通过检索号获得Attribute;2,get(string name)通过name获得Attribute.代码清单如下:
2008-10-02 15:36:00 627
原创 Attribute类的实现
Attribute类:闻其名也可知它是有关属性类。不错,Attribute犹如一个容器bean来装载一个对象的属性。本Attribute类里面的属性有Name、value和delim三个。详细代码清单:package com.heaton.bot;/** * The Attribute class stores a list of named value pair
2008-10-02 15:16:00 522
原创 SpiderIntenalWorkload类的实现
SpiderIntenalWorkload类:本类完全是为IWorkStorable接口方法的具体实现。存储在计算机内存中。用了hashtable和vector来存储URL。方法比较简单,具体代码如下:package com.heaton.bot;import java.util.Enumeration;import java.util.Hashtable;i
2008-10-02 13:08:00 467
原创 Spider类的实现
Spider类的实现:网络机器人最最最核心的一个类终于姗姗来迟,不过没关系,最好的往往在高潮部分。言归正传,Spider类包含了很多的接口所定义的方法,可以通过他们来命令Spider。Spider有三个重要的任务:1,它担当模拟接口,供使用Spider提供方法;2,与SpiderWorker进行通信;3,检测Spider何时完成。详细代码清单:/** * The Sp
2008-10-02 10:20:00 697
原创 SpiderWorker类的实现
SpiderWorker类的任务:笼统地说,Spider使用的多线程,把任务分成了很多小任务。Spider类的基本任务是下载一个web站点,并将网页加入到作业中。执行SpiderWorker,获得网页并对其进行处理,即查看是否含有链接,是内部链接、外部链接还是其他链接。然后通过Spider对象返回链接地址,同时加入到作业里面,循环执行。可能很多人以为Spider类是核心中的核心,其实Sp
2008-10-01 22:28:00 466
原创 SpiderDone类的实现
首先说明一下SpiderDone类的目的:由于编写大型的Spider程序需要很多并发的线程,所以要知道Spider何时完成还是比较难的。而SpiderDone类正好可以实现这个功能。最重要的两个方法:synchronized public void workerBegin();//每执行一次,线程数量加一synchronized public void workerEnd();/
2008-10-01 21:49:00 382
原创 IWorkloadStorable接口的实现
IWorkloadStorable接口:Spider的主要工作之一就是处理访问过的和将要访问的站点的列表,称为作业。IWorkloadStorable接口定义的对象就可以存入和取出作业中的网页.最主要的两个方法:public String assignWorkload();//取出作业里的网页public void addWorkload(String url);//向作业里存入
2008-10-01 21:33:00 451
原创 ISpiderReportable接口的实现
ISpiderReportable就是当Spider程序发现链接时,完成对数据的处理,报告了Spider的发现。共有如下几个方法: public boolean foundInternalLink(String url); public boolean foundExternalLink(String url); public boolean foundOthe
2008-10-01 16:46:00 878
原创 抓取网页GetSite
大略扫描了一下整本书,感觉上写spider最符合我现在的学习要求,那就专心看编写Spider程序了。程序是可以运行,但是却没有得到实际的东西,for example:href=“content.asp?id=2565”,尽管知道它是internal链接,可是spider却不抓取。总之,从下列代码清单中,本人还无法找到确切的原因而修改之;效果如下: 代码清单如下:
2008-10-01 15:55:00 1164 2
Lucene+Nutch搜索引擎 光盘源码
2008-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人