最近开始学习nutch搜索引擎,好多东西需要理解/整理,现在写下来,方便以后查看。
现在看一下<segments>下的每个目录是干什么的:
1. crawl_generate:需要抓取的url列表(fetchlist),由<url, crawldatum>组成的sequence文件。
2. crawl_fetch:每个抓取页面的状态报告,比如是否抓取是否成功,reponse code是多少,由<url, crawldatum>组成的map文件。
3. content:包含下载下来的原数据(raw data),由<url, content>组成的map文件。
4. parse_text:页面的解析文本,用于建立索引,由<url, ParseText>组成的map文件。
5. parse_data:包含页面解析后的元数据和outlinks。
6. crawl_parse:每个被成功抓取和解析的页面的outlinks列表,用于更新crawldb。
==========================================================================================================
一个segment包括以下几个子目录:
crawl_generate:包含所抓取的网址列表
crawl_fetch:包含每个抓取页面的状态
content:包含每个抓取页面的内容
parse_text:包含每个抓取页面的解析文本
parse_data:包含每个页面的外部链接和元数据
crawl_parse:包含网址的外部链接地址,用于更新crawldb数据库
==========================================================================================================
关于 parse操作
parse操作调用的是parse包中的类parsesegment。
parse操作主要作用
解析segment中由fetch得到的页面,并进行整理,将页面分成为parse-date和parse-text
parse-date中保存的是页面的题名、作者、日期、链接等内容
parse-text中保存的是页面的文本内容
parse操作结果:将fetch得到的页面解析为text和data,存于segment目录下
==========================================================================================================
发现Nutch搜索的展示结果有重复,而solr没有重复。
用nutch solrindex命令,将Nutch索引映射到Solr后,映射过去的是content还是parse_text呢?看了一下源码org.apache.nutch.indexer.solr.SolrIndexer,发现映射过去的是parse_text
而nutch中的content是带html标签的文本,所以nutch搜索的结果是以网页形式显示的,所以对应的内容是content,而solr搜索的content是映射过去的parse_text