- 浏览: 85173 次
- 性别:
- 来自: 北京
最新评论
-
zhulongxia:
您好,请问您的服务端的配置和用flex写客户端的配置一样么?还 ...
Red5 Client 调用 Red5 Server -
zhaoleiJE:
public static String toMPTree(S ...
jave -
zouwu85:
你好,你这个能录制网络上的flv小游戏的数据吗?
使用Red5 录制视频 -
emilyHong:
不过有没有多条线的?
js曲线图 -
amssy_zhu:
很好,正准备开发这样的系统
使用Java实现Comet风格的Web应用
两年前集成Nutch 和Solr 这两个Apache Lucene 项目组下的子项目实在是件困难的事情,需要打很多补丁(patches),为他们的联姻搜寻各种必需的组件(required components)。今非昔比,时下,在Solr4.0 也即将浮出水面的时候,两者的结合变的相对容易。
今年早些时候发布的Nutch 1.0包含了"开盒即用"的原装的(out of the box)Solr集成。虽然有各种不同的方法来利用这个新特性,这里仅介绍其中的一种方案。本方案中,Solr 作为处理搜索结果的源和入口,有效的减轻对Nutch 的搜索负担,让Nutch 负责她最擅长的工作:抓取(crawling)和提取(extracting)内容。使用Solr 作为搜索后端,换句话说,就是允许使用所有Solr Server的高级特性,诸如:查询拼写检查(spell-check),搜索提醒(suggestion),数据复制(data- replication),查询缓存等等。
为什么使用Nutch 而不是其他的简单抓取程序?
实现本文说的类似功能的替代方法也可能是使用简单的类似于Apache Droids 抓取框架,但是Nutch 提供了我们很多很好的优势。其中,显而易见的一点是Nutch 提供了可以让你完整的实现搜索应用的特性集,其次是Nutch 的高可伸缩性(scalablity)和健壮性(robust),Nutch 运行在Hadoop 上,你可以运行在单态机器上,也可以运行在一个100台机器构成的集群(cluster)上,另外,Nutch 有很高的抓取质量,你可以配置哪些页面更重要,优先抓取,拥有丰富的APIs可以让你容易的集成Nutch 到你的应用中(可扩展性),更重要的一点是,Nutch 的内建组件,超链数据库(LinkDatabase),拥有该组件,可以大幅的提高搜索结果的关联度,Nutch 在被抓取的页面之间跟踪超链接,以便依靠內部链接来判断页面和页面之间的相关度。
Nutch和Solr的安装
首先下载我们需要的软件,Apache Solr 和 Nutch。
1、从官方 下载Solr Version 1.3.0或者从这里 下载LucidWorks for Solr。
2、解压Solr安装包。
3、下载Nutch Version 1.0 (也可以下载nightly版本 )。
4、解压Nutch安装包。
tar zxvf apache-nutch-1.0.tar.gz
5、配置Solr
简单起见,我们以Solr Example中的配置为基础
a、从apache-nutch-1.0/conf拷贝Nutch Schema到apache-solr-1.3.0/example/solr/conf目录下,覆盖掉已经存在的。
我们希望允许Solr为搜索结果创建摘要,因此我们需要存储内容以便能够索引它。
b、调整schema.xml,以便"content"字段的"stored"属性等于true。
<field name="content" type="text" stored="true" indexed="true"/>
另外,我们希望能够容易的调整查询的关联度,因此这里创建一个新的请求处理器(request handler)交dismax
c、打开apache-solr-1.3.0/example/solr/conf/solrconfig.xml文件,把下面这段粘贴进去
<requestHandler name="/nutch" class="solr.SearchHandler" >
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<float name="tie">0.01</float>
<str name="qf">
content^0.5 anchor^1.0 title^1.2
</str>
<str name="pf">
content^0.5 anchor^1.5 title^1.2 site^1.5
</str>
<str name="fl">
url
</str>
<str name="mm">
2<-1 5<-2 6<90%
</str>
<int name="ps">100</int>
<bool hl="true"/>
<str name="q.alt">*:*</str>
<str name="hl.fl">title url content</str>
<str name="f.title.hl.fragsize">0</str>
<str name="f.title.hl.alternateField">title</str>
<str name="f.url.hl.fragsize">0</str>
<str name="f.url.hl.alternateField">url</str>
<str name="f.content.hl.fragmenter">regex</str>
</lst>
</requestHandler>
6、启动Solr
cd apache-solr-1.3.0/example
java -jar start.jar
7、配置Nutch
a、打开apache-nutch-1.0/conf下的nutch-site.xml,用下面的内容(我们制定了蜘蛛的名称,激活插件,限制单机一次运行抓取的最大URL数为100)替换:
<?xml version="1.0"?>
<configuration>
<property>
<name>http.agent.name</name>
<value>nutch-solr-integration</value>
</property>
<property>
<name>generate.max.per.host</name>
<value>100</value>
</property>
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-html|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
</configuration>
b、打开apache-nutch-1.0/conf下的regex-urlfilter.txt,用下面的内容替换:
-^(https|telnet|file|ftp|mailto):
# skip some suffixes
-\.(swf|SWF|doc|DOC|mp3|MP3|WMV|wmv|txt|TXT|rtf|RTF|avi|AVI|m3u|M3U|flv|FLV|WAV|wav|mp4|MP4|avi|AVI|rss|RSS|xml|XML|pdf|PDF|js|JS|gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]
# allow urls in foofactory.fi domain
+^http://([a-z0-9\-A-Z]*\.)*lucidimagination.com/
# deny anything else
-.
8、创建一个种子列表(初始化的URL列表)
mkdir urls
echo "http://www.haoguoliang.com/" > urls/seed.txt
9、将种子URL列表导入Nutch的crawldb(注意在nutch文件夹下执行)
bin/nutch inject crawl/crawldb urls
10、生成获取(fetch)列表,以便获取和分析内容
bin/nutch generate crawl/crawldb crawl/segments
以上命令在crawl/segments目录下生成了一个新的segment目录,里边存储了抓到的URLs,下边的指令里,我们需要最新的 segment目录作为参数,存储到环境变量SEGMENT里:
export SEGMENT=crawl/segments/`ls -tr crawl/segments|tail -1`
现在,启动抓取程序真正开始抓取内容
bin/nutch fetch $SEGMENT -noParsing
接下来我们分析、解析抓取下来的内容
bin/nutch parse $SEGMENT
更新Nutch crawldb,updatedb命令会存储以上两步抓取(fetch)和分析(parse)最新的segment而得到的新的URLs到Nutch crawldb,以便后续的继续抓取,除了URLs之外,Nutch也存储了相应的页面内容,防止相同的URLs被反反复复的抓取。
bin/nutch updatedb crawl/crawldb $SEGMENT -filter -normalize
到此,一个完整的抓取周期结束了,你可以重复步骤10多次以便可以抓取更多的内容。
11、创建超链库
bin/nutch invertlinks crawl/linkdb -dir crawl/segments
12、索引所有segments中的内容到Solr中
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb crawl/linkdb crawl/segments/*
现在,所有Nutch抓取的内容已经被Solr索引了,你可以通过Solr Admin执行查询操作了
http://127.0.0.1:8983/solr/admin 或者直接通过
http://127.0.0.1:8983/solr/nutch/?q=solr&version=2.2&start=0&rows=10&indent=on&wt=json
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lin_zyang/archive/2010/01/05/5127630.aspx
发表评论
-
red5检测流量
2010-07-16 17:27 1333@Override public void strea ... -
red5共享对象
2010-07-16 17:21 1800package ChatSystem; import java ... -
red5+hibernate
2010-07-16 17:18 1396Application 代码: package conjs.i ... -
使用Red5 录制视频
2010-07-16 17:17 4648import java.io.File; import or ... -
Red5实现直播
2010-07-16 17:14 9870发布端(Publish): var nc:NetConnect ... -
Red5 Client 调用 Red5 Server
2010-07-16 17:02 2913package com.conjs; import org. ... -
jave
2010-07-14 10:56 1317JAVE (Java Audio Video Encoder) ... -
ActiveMQ
2010-07-13 17:44 46251. 背景 ... -
red5的一些概念
2010-07-09 10:52 1292IConnection 是连接的意思 并且有getClient ... -
red5的eclipse插件地址
2010-07-09 10:05 1171Name: Red5Plugin 0.2.x (Eclipse ... -
uuid
2010-07-06 17:55 1076java uuid生成方法 UUID(Universally ... -
Java集合排序及java集合类详解:集合框架中常用类比较
2010-07-01 14:06 1979用 “ 集合框架 ” 设计软件时,记住该框架四个 ... -
Java集合排序及java集合类详解:Set
2010-07-01 14:04 14821.5 Set 1.5.1 概述 ... -
Java集合排序及java集合类详解:Map
2010-07-01 14:02 21601.4 Map 1.4.1 概 ... -
Java集合排序及java集合类详解:Collection
2010-07-01 13:50 21441.2 Collection ... -
Java集合排序及java集合类详解:集合框架概述
2010-07-01 13:47 12911.1 集 ... -
关于 Java Collections API 您不知道的 5 件事,第 2 部分
2010-06-29 13:57 677java.util 中的 Collection ... -
关于 Java Collections API 您不知道的 5 件事,第 1 部分
2010-06-29 13:55 799对于很多 Java 开发人员 ... -
关于 Java 对象序列化您不知道的 5 件事
2010-06-29 11:59 863数年前,当和一个软件团队一起用 Java 语言编写一个应用程序 ... -
使用 Apache MINA 开发高性能网络应用程序
2010-06-29 11:41 900本文将通过一个简单的问候程序 HelloServer 来介绍 ...
相关推荐
总的来说,Nutch+Solr+Hadoop 的框架搭建涉及多个组件的安装、配置和协同工作。理解这些组件的功能和相互之间的关系,以及如何通过脚本和配置文件控制它们,是成功搭建和使用该框架的关键。这个教程提供了详细步骤,...
本项目是基于Apache Nutch和Solr开发的AJAX页面内容爬取与处理设计源码,主要使用Java进行开发。项目共包含1064个文件,其中Java源代码文件458个,XML配置文件181个,文本文件81个,HTML页面文件56个,JPG图片文件56...
基于开源搜索引擎工具(如Heritrix +Lucence,或Nutch+Solr),搭建独立完整的搜索引擎测试平台。 2)垂直搜索行业信息:自主选择某一感兴趣行业,抓取相关行业内容。以抓取结果作为数据库,建立垂直搜索引擎,实现...
本篇文档详细介绍了一种基于Hadoop+Nutch+Solr的大数据搜索系统的设计与实现方法,旨在解决传统搜索引擎中存在的问题,如结果相关性不高、搜索速度慢等。通过对关键技术的深入研究和创新性的应用,该系统能够在...
为了解决上述问题,本方案采用了Hadoop、Nutch和Solr这三种技术的结合,具体优势如下: 1. **Hadoop平台的优势** - **高效的数据处理能力**:Hadoop集群能够大幅提高数据处理速度,尤其适用于大规模数据处理场景。...
Nutch抓取指定网址数据,存储在HBase数据库中,存储过程由zookeeper管理。脚本调用索引器部件将数据索引化,经过索引化的数据被前端检索查询,最后前端展示查询结果,用户点击结果列表查看目标资料。
本文将深入探讨如何使用Apache Nutch与Solr等组件,结合Htmlunit和Selenium WebDriver,来实现对AJAX加载类型页面的全面内容抓取、解析、索引,以及特定数据项的提取。 首先,Apache Nutch是一个开源的Web爬虫框架...
Nutch 和 Solr (参见 ) 版本 1. 索尔 Solr 用于 8.5.1(或 7.3.1)版本wget http://archive.apache.org/dist/lucene/solr/8.5.1/solr-8.5.1.tgz 2. 阿帕奇纳奇 使用 Apache Nutch 版本 1.17(或 1.16)。 wget ...
自己写的 hadoop nutch solr 环境搭建手册,成功搭建后写的,会有红色标注容易出错的地方
OCR_FontsSearchEngine, 一种超立方体Nutch和PHP的OCR搜索引擎 Silex框架 ;thiagoalessio ;nutch1.10+solr4.10.4 ;``` shell
在IT领域,Apache Nutch是一款开源的Web爬虫项目,用于抓取网页并进行索引。而Eclipse作为一款流行的集成开发环境(IDE),被广泛应用于Java开发中。本文将详细解析如何在Eclipse中配置Nutch,以便于开发者更好地...
- 使用Nutch的`bin/nutch solrindex`命令将生成的索引数据推送到Solr,实现搜索功能。 **Nutch 在 Linux 下的搭建过程** 1. **准备工作** - 安装Linux发行版(如Ubuntu或CentOS)。 - 安装JDK,配置`JAVA_HOME`...
Nutch项目的一个重要副产品是Apache Solr,它是一个高性能的全文搜索引擎框架,使得用户能够高效地搜索Nutch抓取的网页数据。Nutch与Solr的无缝集成,简化了数据检索和管理流程,无需依赖于Apache Tomcat或Apache ...
DDH垂直搜索引擎系统是一个Java实现的垂直搜索引擎系统,是一套整合了Nutch/UCI/SOLR的网络信息整合系统。借助DDH你可以快速构建多领域的垂直搜索引擎系统。目前DDH整合了Nutch2.2.1+UCI1.0+SOLR4。
1.1 Solr 简介 1.1.1 Solr 的特性 1.1.2 Solr 的目录结构 1.1.3 Solr 与Lucene 关系 1.2 Solr 安装 1.2.1 环境介绍 1.2.2 安装Solr 1.2.3 结合Nutch
本文将详细介绍 Apache Nutch 1.7 在 Windows 和 Linux 下的安装过程,包括安装前的准备工作、安装 Cygwin、安装 Nutch 1.7、测试 Nutch 1.7 以及与 Solr 结合使用等内容。 1. 准备工作 在安装 Apache Nutch 1.7 ...
编译完成后,可以运行Nutch的命令行工具,如`bin/nutch inject`来注入种子URL,`bin/nutch fetch`执行抓取,`bin/nutch update`更新已抓取的页面,`bin/nutch generate`生成待抓取的URL列表,以及`bin/nutch crawl`...
Nutch 2.2.1 是一个稳定版本,它依赖于其他几个组件来完成其功能,包括 Apache Ant、Apache Tomcat、Java 开发工具包(JDK)以及 Apache Solr。下面我们将详细探讨如何在 Linux 系统上安装这些组件以及配置 Nutch。 ...
2. **索引导入**:Nutch抓取的网页数据可以通过Solr索引导入工具导入到Solr,建立搜索引擎索引。 3. **查询处理**:Solr 支持丰富的查询语法,如布尔逻辑、短语匹配、模糊查询等。 4. **结果排序**:Solr 可以根据...
Nutch可以与Solr或Elasticsearch等搜索引擎集成,实现快速高效的搜索功能。此外,还可以与HBase等NoSQL数据库配合,用于大规模数据存储和检索。 七、实战教程 “Nutch使用.pdf”和“Nutch入门教程.pdf”这两份文档...