请教nutch和solr集成问题
1个回答
展开全部
3.1.Nutch安装
l 解压 tar -zxvf apache-nutch-1.4-bin.tar.gz
l 终端下cd到目录 apache-nutch-1.4-bin/runtime/local,下面会有
bin conf lib logs plugins test 几个文件夹
l 输入命令 bin/nutch ,如果出现下面的提示,说明nutch可用。可能会出现权限不够的提示,chmod 755 bin/nutch ,付给nutch执行权限。
l 继续测试,输入bin/nutch crawl,如果提示Error: JAVA_HOME is not set. 说明计算机或者没有安装jdk或者没有设定环境变量。你可以在终端输入javac,如果没有提示安装,说明已有jdk,问题就出在环境变量那。如果提示你安装,说明你还没装jdk。按照提示安装一个,比如openjdk-6-jdk,安装 sudo apt-get install openjdk-6-jdk。这是可在终端输入java -version
sunny@ubuntu:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (6b24-1.11.3-1ubuntu0.11.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
说明jdk安装成功。
l 此时再输入bin/nutch crawl 会出现crawl的参数形式,Usage: Crawl <urlDir> -solr <solrURL> [-dir d] [-threads n] [-depth i] [-topN N]
其中,
urlDir就是种子url的目录地址
-solr <solrUrl>为solr的地址(如果没有则为空)
-dir 是保存爬取文件的目录
-threads 是爬取线程数量(默认10)
-depth 是爬取深度 (默认5)
-topN 是访问的广度 (默认是Long.max)
l 配置nutch-site.xml文件。在local/conf目录下找到。在conf/nutch-site.xml文件中添加你的代理名字
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
l 创建一个urls文件夹,mkdir -p urls 然后进入文件夹,创建一个文本文件seed.txt。touch seed.txt。在文件中写入它是我们想要抓取的网站。注意最后一个/,还有,一般都是这么写的格式。
l 然后编辑conf/regex-urlfilter.txt把
# accept anything else
+.
替换成
+^http://([a-z0-9]*\.)*nutch.apache.org/
这样他只会抓取nutch.apache.org域名里面的网页。
+^http://([a-z0-9]*\.)*163\.com/
也可以写成+^http://([a-z0-9]*\.)*通用格式。
l bin/nutch crawl urls -dir crawl -depth 3 -topN 5(crawl.sh)
运行完成后你将看到这些目录产生了。Crawl代表爬完的结果存的路径。
crawl/crawldb
crawl/linkdb
crawl/segments
三个文件夹crawldb linkdb segments,其中crawldb是所有需要爬取的超链接,Linkdb 中存放的是所有超连接及其每个连接的链入地址和锚文本,segments存放的是抓取的页面,以爬取的时间命名,个数不多于爬取的深度,Nutch的爬取策略是广度优先,每一层url生成一个文夹夹,直到没有新的url。在segments有6个文件夹,
crawl_generate : names a set of urls to be fetched(待爬取的url)
crawl_fetch : contains the status of fetching each url(爬取的url的状态)
content : contains the content of each url(页面内容)
parse_text : contains the parsed text of each url(网页的文本信息)
parse_data : contains outlinks and metadata parsed from each url(url解析出来的外链和元数据)
crawl_parse : contains the outlink urls, used to update the crawldb(更信crawldb的外链)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
3.2. 集成
l 复制nutch的conf目录中的schema_solr4.xml(注意是4.0那个)文件到solr/conf目录(覆盖掉 主要的那个文件 即可。Conf)
l 修改solr/conf/solrconfig.xml,将里面所有的<str name="df">text</str>都替换为<str name="df">content</str>
l 修改schema.xml先搜索boost,在那里加入 _version_的内容。
l 重启solr,运行solr索引命令
bin/nutch solrindex crawl/crawldb -linkdb crawl/linkdb crawl/segments/* (indexsolr/sh)
l 导入ok,即可查询。
l 解压 tar -zxvf apache-nutch-1.4-bin.tar.gz
l 终端下cd到目录 apache-nutch-1.4-bin/runtime/local,下面会有
bin conf lib logs plugins test 几个文件夹
l 输入命令 bin/nutch ,如果出现下面的提示,说明nutch可用。可能会出现权限不够的提示,chmod 755 bin/nutch ,付给nutch执行权限。
l 继续测试,输入bin/nutch crawl,如果提示Error: JAVA_HOME is not set. 说明计算机或者没有安装jdk或者没有设定环境变量。你可以在终端输入javac,如果没有提示安装,说明已有jdk,问题就出在环境变量那。如果提示你安装,说明你还没装jdk。按照提示安装一个,比如openjdk-6-jdk,安装 sudo apt-get install openjdk-6-jdk。这是可在终端输入java -version
sunny@ubuntu:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (6b24-1.11.3-1ubuntu0.11.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
说明jdk安装成功。
l 此时再输入bin/nutch crawl 会出现crawl的参数形式,Usage: Crawl <urlDir> -solr <solrURL> [-dir d] [-threads n] [-depth i] [-topN N]
其中,
urlDir就是种子url的目录地址
-solr <solrUrl>为solr的地址(如果没有则为空)
-dir 是保存爬取文件的目录
-threads 是爬取线程数量(默认10)
-depth 是爬取深度 (默认5)
-topN 是访问的广度 (默认是Long.max)
l 配置nutch-site.xml文件。在local/conf目录下找到。在conf/nutch-site.xml文件中添加你的代理名字
<property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
l 创建一个urls文件夹,mkdir -p urls 然后进入文件夹,创建一个文本文件seed.txt。touch seed.txt。在文件中写入它是我们想要抓取的网站。注意最后一个/,还有,一般都是这么写的格式。
l 然后编辑conf/regex-urlfilter.txt把
# accept anything else
+.
替换成
+^http://([a-z0-9]*\.)*nutch.apache.org/
这样他只会抓取nutch.apache.org域名里面的网页。
+^http://([a-z0-9]*\.)*163\.com/
也可以写成+^http://([a-z0-9]*\.)*通用格式。
l bin/nutch crawl urls -dir crawl -depth 3 -topN 5(crawl.sh)
运行完成后你将看到这些目录产生了。Crawl代表爬完的结果存的路径。
crawl/crawldb
crawl/linkdb
crawl/segments
三个文件夹crawldb linkdb segments,其中crawldb是所有需要爬取的超链接,Linkdb 中存放的是所有超连接及其每个连接的链入地址和锚文本,segments存放的是抓取的页面,以爬取的时间命名,个数不多于爬取的深度,Nutch的爬取策略是广度优先,每一层url生成一个文夹夹,直到没有新的url。在segments有6个文件夹,
crawl_generate : names a set of urls to be fetched(待爬取的url)
crawl_fetch : contains the status of fetching each url(爬取的url的状态)
content : contains the content of each url(页面内容)
parse_text : contains the parsed text of each url(网页的文本信息)
parse_data : contains outlinks and metadata parsed from each url(url解析出来的外链和元数据)
crawl_parse : contains the outlink urls, used to update the crawldb(更信crawldb的外链)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
3.2. 集成
l 复制nutch的conf目录中的schema_solr4.xml(注意是4.0那个)文件到solr/conf目录(覆盖掉 主要的那个文件 即可。Conf)
l 修改solr/conf/solrconfig.xml,将里面所有的<str name="df">text</str>都替换为<str name="df">content</str>
l 修改schema.xml先搜索boost,在那里加入 _version_的内容。
l 重启solr,运行solr索引命令
bin/nutch solrindex crawl/crawldb -linkdb crawl/linkdb crawl/segments/* (indexsolr/sh)
l 导入ok,即可查询。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询