Archive for the ‘搜索技术’ Category

Lucene 全文检索实践(1)–简介

Sunday, November 19th, 2006




Lucene 是 Apache Jakarta 的一个子项目,是一个全文检索的搜索引擎库。其提供了简单实用的 API,通过这些 API,可以自行编写对文件(TEXT/XML/HTML等)、目录、数据库的全文检索程序。 Features: * Very fast indexing, minimal RAM required * Index compression to 30% of original text * Indexes text and HTML, document classes available for XML, PDF and RTF * Search supports phrase and Boolean queries, plus, minus and quote marks, and parentheses * Allows single and multiple character ...

学习使用WebLucene

Tuesday, November 14th, 2006




最近几天开始学习使用lucene1.9, weblucene 0.6来进行索引、检索web页,发现weblucene的中文分词做的还是不错的,一般的两三个字的词语都可以检索。这次参考了chedong的文档和竹笋炒肉的blog,以及这篇blog文章,在此非常感谢他们创建的这些开源项目。

Nutch抓取的郁闷之处

Thursday, September 7th, 2006




抓取某网站页面,运行Nutch好几个小时之后,突然,电脑死机,reset,再看运行抓取的log文件,最后出现的是一些乱码信息,看来又得重新运行爬虫程序抓取了,郁闷...不知nutch能否支持"续抓"的功能?呵呵...

Nutch爬虫实验运行及抓取数据分析(二)

Wednesday, September 6th, 2006


续接《Nutch爬虫实验运行及抓取数据分析(一)》: 在分析了WebDB之后,下面我们继续分析Nutch爬虫在对实验网络抓取之后其它的结果文件内容。   Segments   Crawler在抓取中共生成了三个segment,分别存放于segments文件夹下的以时间戳为文件夹名的三个子文件夹下面。每个segment代表Crawler的一次“产生/抓取/更新”循环。Nutch中提供了如下的命令可以清晰的看到segments的简介: bin/nutch segread -list -dir crawl-tinysite/segments/ 命令结果如下所示: PARSED? STARTED           FINISHED          COUNT DIR NAME true    20051025-12:13:35 20051025-12:13:35 1       crawl-tinysite/segments/20051025121334   true    20051025-12:13:37 20051025-12:13:37 1       crawl-tinysite/segments/20051025121337   true    20051025-12:13:39 20051025-12:13:39 2       crawl-tinysite/segments/20051025121339   TOTAL: 4 entries in 3 segments.         结果中PARSED?列表示的是在抓取之后是否接着进行解析和索引,默认的都是true。但是 如果你利用底层命令进行抓取操作的时候,你可以在抓取之后独立地再另外进行解析和索 引工作,此时此列才会为false。STARTED和FINISHED两列记录的是此循环的开始时间和 结束时间,这些信息可以帮助用户分析那些抓取时间过长的页面是怎么回事。COUNT列代 表的是此segment内包含的被抓取回来的网页数目,例如最后一个segment此列值为2,代表 的是segment中有两个被抓取回来的网页,即C网页和C-dup网页。       但是这些简介信息并不够详细,下面的命令可以可以更清楚的看到单个segment的 详细信息,我们以第一个segment为例:         s=`ls -d crawl-tinysite/segments/* | head -1`  bin/nutch segread -dump $s 结果为: Recno:: 0  FetcherOutput::  FetchListEntry: version: 2  fetch: true  page: Version: 4  URL: http://keaton/tinysite/A.html  ID: 6cf980375ed1312a0ef1d77fd1760a3e  Next fetch: Tue Nov 01 11:13:34 GMT 2005  Retries ...

Nutch爬虫实验运行及抓取数据分析(一)

Wednesday, September 6th, 2006


为了更深入地对Nutch爬虫进行了解,我们需要运行一个实际的抓取过程并对这个过程中的细节进行记录,对抓取生成的结果文件进行内容分析。首先你需要下载Nutch程序并搭建起可以令其运行的平台,这在网上都有详细的说明资料,我就不赘述了。我们需要做的第一步就是建立起一个实验用的Web站点,这个站点只包含了四个网页。图1描述了这四个网页之间的链接关系,并且C网页和C-dup网页的网页内容是相同的。   图1  实验站点结构图   我们首先需要设置种子URL,我们设置A网页为爬虫起始抓取网页。命令如下: echo 'http://keaton/tinysite/A.html' > urls   另外我们需要限制Crawler只抓取这个实验站点的网页,Nutch爬虫使用一个Filter来识别URL是否需要抓取。我们可以通过对conf/crawl-urlfilter.txt文件的修改来实现这个Filter,将文件中的   +^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/ 内容修改为 +^http://keaton/   接下来,我们执行下面的命令行来运行Crawler: bin/nutch crawl urls -dir crawl-tinysite -depth 3 >& crawl.log   在这个爬行命令中,我们设置抓取结果存储于crawl-tinysite文件夹中,抓取日志为crawl.log,另外限定了抓取深度为3,也就是告诉Crawler需要执行3次“产生/抓取/更新”循环就可以抓取完毕了。由于实验站点的简陋,深度为3就可以了,但是在实际运行时需要根据实际情况来进行设置。   下面就让我们通过对抓取产生文件的内容分析来进一步的了解Crawler的工作吧。 首先我们来看一下抓取过程中产生的所有文件有哪些,打开crawl-tinysite文件夹,里面有三个子目录,详细如图2所示: 图2 爬虫运行完毕所生成文件   Nutch自身带了很多查看结果文件的工具,我们利用它们来进行文件内容展示。   WebDB   首先我们需要看一下WebDB中的网页数目和链接数目,以确定站点爬行情况,执行下面的命令行:   bin/nutch readdb crawl-tinysite/db -stats 结果为: Number of pages: 4 Number of links: 4   正如所料,其中包括四个网页(A,B,C,C-dup)和四个链接。因为WebDB只能去除重复URL,所以其中仍然含有C-dup网页,但是A网页却并没有被抓取两次。接下来,看一下WebDB中的网页实体和链接实体的具体存储内容,执行命令:   bin/nutch readdb crawl-tinysite/db -dumppageurl 生成结果: Page 1: Version: 4 URL: http://keaton/tinysite/A.html ID: fb8b9f0792e449cda72a9670b4ce833a Next fetch: Thu Nov 24 11:13:35 ...

Nutch 0.8在windows下使用的说明

Wednesday, September 6th, 2006


来源:侧耳倾听的博客 Nutch 0.8在2006.7.25在其官方网站上正式发布,此版本在以前的基础上做了很大的改进.因此在进行爬行的时候不能完全按照各版本的方法进行.本人已经成功安装和使用,具体使用如下: 辅助软件 1、Java 1.4.x ; 2、Apache's Tomcat 4.x ; 3、Cygwin ; 使用 1、新建环境变量或添加环境变量新值 PATH= F:\nutch-0.8\bin;  (NUTCH-0.8的安装路径) JAVA_HOME = C:\Program Files\Java\jdk1.5.0_07 (JDK的安装路径) NUTCH_HOME= F:\cygwin          (On windows, using cygwin the default NUTCH_HOME is at \\cygdrive\) (*环境变量值依据读者具体情况设定) 2、运行crawl命令 ①在nutch-0.8的安装目录下新建一个文件夹,例如取名search。然后在此文件夹内建立一个文本文件命名为urls.txt。该文件的内容为所要进行crawl的网站地址,例http://www.163.com/。(以前版本不需先建立一个文件夹,直接建文本文件就行。但在0.8版本里不先建立文件夹crawl命令就会出错)。 ②修改nutch-0.8\conf\crawl-urlfilter.txt,把文件中的MY.DOMAIN.NAME全部替换成163.com 。 ③修改nutch-0.8\conf\nutch-site.xml, http.robots.agents www.163.com http.agent.name www.163.com