Solr1.4+Nutch1.2构建分布式搜索服务
2010-12-22 15:03
423 查看
网上有很多文章介绍配置solr+nutch,但感觉没多少是完整的,有些只是配置出用solr建立nutch索引并能用solradmin查找到数据就完事,我这篇文章主要介绍怎样把solr集成到nutch的搜索前台,让nutch能用到solr的索引服务从而构建出分布式搜索服务。由于本文主要介绍solr和nutch的集成,nutch的配置和爬取不在本文的讨论范围,需要的可以网上搜集相关资料,还有本文所说的索引库是保存在分布式hdfs中的,不是本地索引库,当然本地索引库也可以用这种方法。假设我的索引库在hdfs中的路径名为:/user/用户名/索引库名
我的运行环境:
linux CentOS
JDK1.6
Nutch 1.2
Solr1.4.1
Solr下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/
步骤:
1.部署配置solr
(1)部署Solr
解压apache-solr-1.4.1到/opt/solr目录
部署WAR包
把/opt/solr/dist/apache-solr-1.4.1.war复制到/opt/tomcat/webapps/solr.war
(2)设置solr.home环境变量
vi /etc/profile
在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC后面加上
2.启动solr服务:
4.测试solr索引
访问solr查询界面,提交查询表单,检查能否查到数据 http://127.0.0.1:8983/solr/admin
5.配置solr-servers
在本地新建一个solr-servers.txt里面写上;
http://127.0.0.1:8983/solr/
把传到hdfs中的索引库名目录下,参考语句:
(2)配置nutch-site.xml
把nutch/conf/nutch-site.xml中的searcher.dir改成/user/用户名/索引库名,
例:
<property>
<name>searcher.dir</name>
<value>/user/crawler/sina</value>
</property>
(3)下载缺少的类包
到http://www.slf4j.org/dist/slf4j-1.5.5.zip下载slf4j-1.5.5,其它版本可能会出错,
解压后复制slf4j-api-1.5.5.jar和slf4j-log4j12-1.5.5.jar到nutch搜索前台的WEB-INF/lib下,否则引用solr服务时会因为没找到这两类包而报错。
7.OK,整个过程完成,你可以在nutch前台启动时查看控制台输出信息,如果出现
2010-12-25 08:46:54,081 INFO SearchBean - Adding Solr searchers in hdfs://crawler001:9000/user/crawler/sina/solr-servers.txt
。。。。
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: content dest: content
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: site dest: site
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: title dest: title
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: host dest: host
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: segment dest: segment
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: boost dest: boost
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: digest dest: digest
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: tstamp dest: tstamp
2010-12-25 08:46:55,135 INFO SolrMappingReader - source: url dest: id
2010-12-25 08:46:55,135 INFO SolrMappingReader - source: url dest: url
2010-12-25 08:46:55,135 INFO SearchBean - Added 1 remote searchers.
之类的信息,就说明配置完成,可实现分布式搜索。如果想多增加几个solr索引服务的话只要把上述在其它机器上重新做一遍,然后更新solr-servers.txt加上新的服务地址就行。
(4)配置solrconfig.xml
我的运行环境:
linux CentOS
JDK1.6
Nutch 1.2
Solr1.4.1
Solr下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/
步骤:
1.部署配置solr
(1)部署Solr
解压apache-solr-1.4.1到/opt/solr目录
部署WAR包
把/opt/solr/dist/apache-solr-1.4.1.war复制到/opt/tomcat/webapps/solr.war
(2)设置solr.home环境变量
vi /etc/profile
在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC后面加上
<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 name="hl">true</bool> <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>
2.启动solr服务:
bin/nutch solrindex http://192.168.32.3:8983/solr/ /user/用户名/索引库名/crawldb /user/用户名/索引库名/linkdb /user/用户名/索引库名/segments/*
4.测试solr索引
访问solr查询界面,提交查询表单,检查能否查到数据 http://127.0.0.1:8983/solr/admin
5.配置solr-servers
在本地新建一个solr-servers.txt里面写上;
http://127.0.0.1:8983/solr/
把传到hdfs中的索引库名目录下,参考语句:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://127.0.0.1:9000</value> <description></description> </property> </configuration>
(2)配置nutch-site.xml
把nutch/conf/nutch-site.xml中的searcher.dir改成/user/用户名/索引库名,
例:
<property>
<name>searcher.dir</name>
<value>/user/crawler/sina</value>
</property>
(3)下载缺少的类包
到http://www.slf4j.org/dist/slf4j-1.5.5.zip下载slf4j-1.5.5,其它版本可能会出错,
解压后复制slf4j-api-1.5.5.jar和slf4j-log4j12-1.5.5.jar到nutch搜索前台的WEB-INF/lib下,否则引用solr服务时会因为没找到这两类包而报错。
7.OK,整个过程完成,你可以在nutch前台启动时查看控制台输出信息,如果出现
2010-12-25 08:46:54,081 INFO SearchBean - Adding Solr searchers in hdfs://crawler001:9000/user/crawler/sina/solr-servers.txt
。。。。
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: content dest: content
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: site dest: site
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: title dest: title
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: host dest: host
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: segment dest: segment
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: boost dest: boost
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: digest dest: digest
2010-12-25 08:46:55,134 INFO SolrMappingReader - source: tstamp dest: tstamp
2010-12-25 08:46:55,135 INFO SolrMappingReader - source: url dest: id
2010-12-25 08:46:55,135 INFO SolrMappingReader - source: url dest: url
2010-12-25 08:46:55,135 INFO SearchBean - Added 1 remote searchers.
之类的信息,就说明配置完成,可实现分布式搜索。如果想多增加几个solr索引服务的话只要把上述在其它机器上重新做一遍,然后更新solr-servers.txt加上新的服务地址就行。
(4)配置solrconfig.xml
相关文章推荐
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
- 基于consul构建golang系统分布式服务发现机制
- 基于Dubbo框架构建分布式服务
- 利用SOLR搭建企业搜索平台 之六 (分布式题外话)linux ssh 免密码登陆
- Solr(一)——搭建solr全文搜索服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 利用Solr服务建立的站内搜索雏形---solr1
- Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)
- Spring Cloud构建微服务架构分布式配置中心
- 基于nodejs的分布式服务构建
- Spring Cloud构建微服务架构分布式配置中心
- 利用Spring Cloud和Docker构建微服务以及如何构建起自我修复型分布式系统
- solr与zookeeper搭建solrcloud分布式索引服务实例
- 基于Dubbo框架构建分布式服务(一)
- Solr 搜索服务(中文解析器配置)--Liunx
- 基于Dubbo框架构建分布式服务
- lucene构建restful风格的简单搜索引擎服务
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)