网上有很多文章介绍配置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后面加上

(3)配置schema.xml

把nutch1.2conf目录下的schema.xml复制到/opt/solr/example/solr/conf中替换原文件。
注:必须把<copyField source="url" dest="id"/>这句话删除,否则后面建索引时会出错。

修改/opt/solr/example/solr/conf/solrconfig.xml增加以下内容:


2.启动solr服务:


3.将nutch的索引映射到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中的索引库名目录下,参考语句:

6.配置nutch

(1)配置core-site.xml

把nutch/conf/core-site.xml改成:

(2)配置nutch-site.xml

把nutch/conf/nutch-site.xml中的searcher.dir改成/user/用户名/索引库名,
例:


(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

更多相关文章

  1. ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自
  2. PHP“智能”搜索引擎搜索Mysql表的建议
  3. mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)
  4. [O]SQL SERVER下有序GUID和无序GUID作为主键&聚集索引的性能表现
  5. Mysql 范式、索引、视图、事务、sp等概念简介
  6. 1)如何用语句来查看一个表内是否建了索引2)或用plsql查看一个表
  7. 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更
  8. 浅谈MYSQL索引应用(一)
  9. 数据库sql及索引优化

随机推荐

  1. MySql php:检查Row是否存在
  2. Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运
  3. 给苹果osx安装mysql数据库
  4. MySQL SQL语句学习(查询某年每个月的销售
  5. 我是对的,InnoDb比MyISAM更适合频繁的并发
  6. Mongodb 的ORM框架 Morphia 注解二 ——
  7. 实例讲解:.NET如何访问MySQL数据库
  8. MYSQL中update语句 与in 的bug
  9. MySQL入门第三天(下)——存储过程与存储引
  10. win10 64位安装绿色版mysql-5.7.16-winx6