设为首页 收藏本站
查看: 970|回复: 0

[经验分享] 使用nutch和solr建立搜索引擎

[复制链接]

尚未签到

发表于 2015-7-17 12:23:46 | 显示全部楼层 |阅读模式
一、lucene,solr,nutch,hadoop的区别和联系
  apache lucene是apache下一个著名的开源搜索引擎内核,基于Java技术,处理索引,拼写检查,点击高亮和其他分析,分词等技术。
  nutch和solr原来都是lucene下的子项目。但后来nutch独立成为独立项目。nutch是2004年由俄勒冈州立大学开源实验室模仿google搜索引擎创立的开源搜索引擎,后归于apache旗下。nutch主要完成抓取,提取内容等工作。
  solr则是基于lucene的搜索界面。提供XML/HTTP 和 JSON/Python/Ruby API,提供搜索入口,点击高亮,缓存,备份和管理界面。
  hadoop原来是nutch下的分布式任务子项目,现在也成为apache下的顶级项目。nutch可以利用hadoop进行分布式多任务抓取和分析存储工作。
  所以,lucene,nutch,solr,hadoop一起工作,是能完成一个中型的搜索引擎工作的。
  前面有一篇《apache 搜索引擎solr试用》,详细描述了单独的solr实现搜索界面的示例。
  下面的部分,基于nutch,完成网页的抓取,并通过solr完成索引和搜索,实现真正的完整的搜索引擎建立流程。

二、下载安装nutch
  下载页面:

http://www.apache.org/dyn/closer.cgi/nutch/
[zhouhh@Hadoop48 ~]$ wget http://labs.renren.com/apache-mirror/nutch/apache-nutch-1.5-bin.tar.gz
Length: 46293852 (44M) [application/x-gzip]
http://wiki.apache.org/nutch/NutchTutorial
  安装

[zhouhh@Hadoop48 ~]$ mkdir nutch
[zhouhh@Hadoop48 ~]$ mv apache-nutch-1.5-bin.tar.gz nutch/
[zhouhh@Hadoop48 ~]$ cd nutch/
[zhouhh@Hadoop48 nutch]$ tar zxvf apache-nutch-1.5-bin.tar.gz
[zhouhh@Hadoop48 bin]$ chmod +x nutch
  否则会出Permission denied错误。
  将nutch加入PATH环境变量中。

[zhouhh@Hadoop48 ~]$ vi .bashrc
export NUTCH_HOME=/home/zhouhh/nutch
export PATH=$PATH:$NUTCH_HOME/bin
  执行

[zhouhh@Hadoop48 ~]$ nutch
Usage: nutch [-core] COMMAND
三、抓取第一个网站
  假如我想抓取http://guodo.net
修改抓取url正则,仅允许抓guodo.net上的内容。

[zhouhh@Hadoop48 nutch]$ vi conf/regex-urlfilter.txt
  修改+.

# accept anything else
#+.
  为

+^http://([a-z0-9]*\.)*guodo.net/
  新建urls目录,用于存放首要抓取的url列表,我们存放http://guodo.net

[zhouhh@Hadoop48 nutch]$ mkdir urls
[zhouhh@Hadoop48 urls]$ vi seed.txt
http://guodo.net
  给爬行蜘蛛取个名字

[zhouhh@Hadoop48 conf]$ cat nutch-site.xml




http.agent.name
abloz.com's Nutch Spider


  
  启动solr

[zhouhh@Hadoop48 example]$ pwd
/home/zhouhh/apache-solr-4.0.0-ALPHA/example
[zhouhh@Hadoop48 example]$ java -jar start.jar
http://hadoop48:8983/solr/#/
  将nutch的schema替换原solr自带的schema,便于搜索

[zhouhh@Hadoop48 nutch]$ cp conf/schema-solr4.xml ../apache-solr-4.0.0-ALPHA/example/solr/conf/.
zhouhh@Hadoop48 nutch]$ cd ../apache-solr-4.0.0-ALPHA/example/solr/conf/.
  备份原来的索引schema,用nutch的schema替代

[zhouhh@Hadoop48 conf]$ mv schema.xml schema.xml.bk
[zhouhh@Hadoop48 conf]$ mv schema-solr4.xml schema.xml
  此时执行抓取,由于版本问题,会返回错误

[zhouhh@Hadoop48 nutch]$ nutch crawl urls -solr http://Hadoop48:8983/solr/ -depth 3 -topN 5
java.lang.RuntimeException: Can't find resource
: 'stopwords_en.txt' in classpath or 'solr/./conf/'
  替换语言资源位置到lang下。

[zhouhh@Hadoop48 conf]$ vi schema.xml
:%s/"stopwords_en.txt"/"lang\/stopwords_en.txt"/g
  抓取数据
仅抓取:

[zhouhh@Hadoop48 nutch]$ nutch crawl urls -dir crawl -depth 3 -topN 5
-dir 放置爬行结果的目录
-threads 并行抓取线程数
-depth 指示从首页往下爬行链接的深度
-topN N 指示每层返回的最大页数
  爬行完,看到crawl多了几个目录

[zhouhh@Hadoop48 nutch]$ ls crawl
crawldb  linkdb  segments
  抓取并通过solr查询

[zhouhh@Hadoop48 nutch]$ nutch crawl urls -solr http://Hadoop48:8983/solr/ -depth 3 -topN 5
Injector: starting at 2012-09-17 15:51:04
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
...
LinkDb: merging with existing linkdb: crawl/linkdb
LinkDb: finished at 2012-09-17 15:55:11, elapsed: 00:00:25
crawl finished: crawl
  建立索引

[zhouhh@Hadoop48 nutch]$ nutch solrindex http://hadoop48:8983/solr/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/*
SolrIndexer: starting at 2012-09-17 16:06:27
Indexing 13 documents
SolrIndexer: finished at 2012-09-17 16:07:50, elapsed: 00:01:23
  建立索引工作时能看到SolrIndexer作为Hadoop Job在工作。

[zhouhh@Hadoop48 ~]$ jps
27771 SecondaryNameNode
27577 NameNode
27863 JobTracker
10684 Jps
10186 jar
10542 SolrIndexer
  查询
用浏览器进入http://hadoop48:8983/solr/#/collection1/query
在q里面输入“儿童”,可以得到相应查询结果。
DSC0000.jpg
  相关文章


    • apache 搜索引擎solr试用
    • hbase 集群安装配置
    • hive 入门教程
    • 10分钟从无到有搭建hadoop环境并测试mapreduce
    • tomcat安装


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87662-1-1.html 上篇帖子: solr cloud 下篇帖子: Solr部署到tomcat,通过war包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表