- 浏览: 943258 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
Nutch源码学习系列之一:Analysis包(原创) - -
Tag: Nutch Lucene Analysis
Nutch源码学习系列之一:Analysis包(原创)
TjuAILab 张步峰
Nutch0.7出来,对于我们这些Lucene爱好者来说,是件兴奋的事情!当时用Nutch0.6做实验已经让我非常兴奋。
Nutch0.7比之0.6又增添了一部分功能,我们开发一些小型搜索引擎可以修改Nutch的一些接口,使之更加用户化。
此节主要讲述Nutch下的Analysis包即package org.apache.nutch.analysis。
阅读此包是你可以参照Nutch的API文档。http://lucene.apache.org/nutch/apidocs/index.html。或者使用的硬盘上的也可。
搜索引擎去除Spider外基本架构可以简要描述如下
由于Analysis主要处理分词问题。在图中看出需要分词的地方就是所用入库和对用户查询进行分词。
Nutch的Analysis有一下几个文件:(黄色底是NutchAPI文档列的)
CharStream.java:
interface CharStream
*这个接口描述了一个维护字符串行和列位置的字符流。在某种程度上,它还具有备份字符流的
*能力。此接口的一个实现有JavaccParser产生,用于TokenManager这个实现中。
*
*除去backup方法外的其他所有方法都可以被以任何方式实现。backup的正确实现需要对lexer的正确操作。
*其他的方法被用来获取信息,诸如行序号、列序号、用于Token却没有用于lexer的字符串。
*因此这些方法对应的实现不会影响产生lexer的操作
CommonGrams.java
*对于索引时经常出现的项和词构建n-grams(不是很明白).使用n-grams优化词查询。单个项依旧使用
*覆盖的n-grams索引。
FastCharStream.java
*CharStream接口的一个有效实现。注意这并没有进行行数计算,当时追踪了在输入中Token的字符位置
*这个字符位置是Lucene的API需要的
NutchAnalysis.java
应该说是Analysis包的核心了,主要完成Nutch语言(词典)分析器和查询分析器。具体到语言分析,要去
Stop Words,然后中文分词,或者英文分词等等。
NutchAnalysisConstants.java
一个接口主要被NutchAnalysis和NutchTokenManager所用,里面含的都是常量。譬如Token的类型(冒号,省略号,阿拉伯数字,短语等等)和TokenImage(就是Token类型的string化)
NutchAnalysisTokenManager.java
管理Token,为NutchAnalysis所用。
NutchDocumentAnalyzer.java
*NutchDocumentAnalyzer为Nuctch文档服务。使用JavaCC定义的语言(词典)分析器
*(@link NutchDocumentTokenizer),不含有StopWords列表。从而保持了查询分析的连贯性。
与NutchAnalysis相对独立
NutchDocumentTokenizer.java
*此分词器用于对Nutch的文档文本进行分词。是JavaCC所产生的词典分析器的实现。
为NutchDocumentAnalyzer所用。
ParseException.java
*当查询分析出错时,此异常被抛出。在产生的查询分析器(Parser)中。
*你可以通过调用方法generateParseException来显示地创建此异常类的对象。
*只要你保留公共feild(成员变量),你可以修改这个类使其报错机制更加用户化。
Token.java
Token类内含Token的类型,每个Token在字符串中的起始位置和终止位置等等
TokenManager.java
一个接口,非常简单,里面只有一个用于返回下一个Token的函数。在Analysis包没有被使用。可能留着以后扩展用
TokenMgrError.java
主要用于分词出错,进行报错。
其主要的类别继承图如下:
Class Hierarchy
class java.lang.Object
class org.apache.lucene.analysis.Analyzer
class org.apache.nutch.analysis.NutchDocumentAnalyzer
class org.apache.nutch.analysis.CommonGrams
class org.apache.nutch.analysis.NutchAnalysis (implements org.apache.nutch.analysis.NutchAnalysisConstants)
class org.apache.nutch.analysis.NutchAnalysisTokenManager (implements org.apache.nutch.analysis.NutchAnalysisConstants)
class org.apache.lucene.analysis.TokenStream
class org.apache.lucene.analysis.Tokenizer
class org.apache.nutch.analysis.NutchDocumentTokenizer (implements org.apache.nutch.analysis.NutchAnalysisConstants)
Interface Hierarchy
interface org.apache.nutch.analysis.NutchAnalysisConstants
Nutch的底层是基于Lucene的,从图中你可以看出主要的两大接口NutchDocumentAnalyzer和NutchDocumentTokenizer都是从Lucene继承过来的。所以更有必要认真研究Lucene的Analysis包。
由于BlogChina发文大小有限制,想看更全的源码部分,可以看我另一个blog!
http://blog.donews.com/windshow/archive/2005/08/26/526755.aspx
Tag: Nutch Lucene Analysis
Nutch源码学习系列之一:Analysis包(原创)
TjuAILab 张步峰
Nutch0.7出来,对于我们这些Lucene爱好者来说,是件兴奋的事情!当时用Nutch0.6做实验已经让我非常兴奋。
Nutch0.7比之0.6又增添了一部分功能,我们开发一些小型搜索引擎可以修改Nutch的一些接口,使之更加用户化。
此节主要讲述Nutch下的Analysis包即package org.apache.nutch.analysis。
阅读此包是你可以参照Nutch的API文档。http://lucene.apache.org/nutch/apidocs/index.html。或者使用的硬盘上的也可。
搜索引擎去除Spider外基本架构可以简要描述如下
由于Analysis主要处理分词问题。在图中看出需要分词的地方就是所用入库和对用户查询进行分词。
Nutch的Analysis有一下几个文件:(黄色底是NutchAPI文档列的)
CharStream.java:
interface CharStream
*这个接口描述了一个维护字符串行和列位置的字符流。在某种程度上,它还具有备份字符流的
*能力。此接口的一个实现有JavaccParser产生,用于TokenManager这个实现中。
*
*除去backup方法外的其他所有方法都可以被以任何方式实现。backup的正确实现需要对lexer的正确操作。
*其他的方法被用来获取信息,诸如行序号、列序号、用于Token却没有用于lexer的字符串。
*因此这些方法对应的实现不会影响产生lexer的操作
CommonGrams.java
*对于索引时经常出现的项和词构建n-grams(不是很明白).使用n-grams优化词查询。单个项依旧使用
*覆盖的n-grams索引。
FastCharStream.java
*CharStream接口的一个有效实现。注意这并没有进行行数计算,当时追踪了在输入中Token的字符位置
*这个字符位置是Lucene的API需要的
NutchAnalysis.java
应该说是Analysis包的核心了,主要完成Nutch语言(词典)分析器和查询分析器。具体到语言分析,要去
Stop Words,然后中文分词,或者英文分词等等。
NutchAnalysisConstants.java
一个接口主要被NutchAnalysis和NutchTokenManager所用,里面含的都是常量。譬如Token的类型(冒号,省略号,阿拉伯数字,短语等等)和TokenImage(就是Token类型的string化)
NutchAnalysisTokenManager.java
管理Token,为NutchAnalysis所用。
NutchDocumentAnalyzer.java
*NutchDocumentAnalyzer为Nuctch文档服务。使用JavaCC定义的语言(词典)分析器
*(@link NutchDocumentTokenizer),不含有StopWords列表。从而保持了查询分析的连贯性。
与NutchAnalysis相对独立
NutchDocumentTokenizer.java
*此分词器用于对Nutch的文档文本进行分词。是JavaCC所产生的词典分析器的实现。
为NutchDocumentAnalyzer所用。
ParseException.java
*当查询分析出错时,此异常被抛出。在产生的查询分析器(Parser)中。
*你可以通过调用方法generateParseException来显示地创建此异常类的对象。
*只要你保留公共feild(成员变量),你可以修改这个类使其报错机制更加用户化。
Token.java
Token类内含Token的类型,每个Token在字符串中的起始位置和终止位置等等
TokenManager.java
一个接口,非常简单,里面只有一个用于返回下一个Token的函数。在Analysis包没有被使用。可能留着以后扩展用
TokenMgrError.java
主要用于分词出错,进行报错。
其主要的类别继承图如下:
Class Hierarchy
class java.lang.Object
class org.apache.lucene.analysis.Analyzer
class org.apache.nutch.analysis.NutchDocumentAnalyzer
class org.apache.nutch.analysis.CommonGrams
class org.apache.nutch.analysis.NutchAnalysis (implements org.apache.nutch.analysis.NutchAnalysisConstants)
class org.apache.nutch.analysis.NutchAnalysisTokenManager (implements org.apache.nutch.analysis.NutchAnalysisConstants)
class org.apache.lucene.analysis.TokenStream
class org.apache.lucene.analysis.Tokenizer
class org.apache.nutch.analysis.NutchDocumentTokenizer (implements org.apache.nutch.analysis.NutchAnalysisConstants)
Interface Hierarchy
interface org.apache.nutch.analysis.NutchAnalysisConstants
Nutch的底层是基于Lucene的,从图中你可以看出主要的两大接口NutchDocumentAnalyzer和NutchDocumentTokenizer都是从Lucene继承过来的。所以更有必要认真研究Lucene的Analysis包。
由于BlogChina发文大小有限制,想看更全的源码部分,可以看我另一个blog!
http://blog.donews.com/windshow/archive/2005/08/26/526755.aspx
发表评论
-
nutch1.4 环境变量设置
2012-04-06 12:52 1680Exception in thread "main& ... -
正则使用
2010-06-18 00:19 1099java正则表达式(java.Regex)HtmlParser ... -
nutch 1.0 读源码,过滤掉不正确的URL实现方法
2010-06-18 00:17 3335nutch 1.0 读源码,过滤掉不正确的URL实现方法: ... -
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputExnutch新发现,为以后备忘
2010-06-16 23:16 2262urls -dir mycrawl -depth 3 -top ... -
HTMLParser 解析html字符串,提取纯文本
2010-05-14 09:59 8289今天在群里问别人怎么提取文本,也没有具体告诉我用什么,只是说用 ... -
HTMLParser的两种使用方法[转]
2010-05-13 23:37 1881HTMLParser的两种使用方法 文章分类:Java编程 ... -
搜索引擎术语
2010-05-05 11:40 1391附录. 术语 B: 半结构化 ... -
影响Lucene索引速度原因以及提高索引速度技巧[转]
2010-04-25 00:11 2711影响Lucene索引速度原因以及提高索引速度技巧 关键字: ... -
如何配置compass的索引位置为相对路径
2009-09-01 19:28 1476Compass是对lucene进行封装 ... -
heritrix 基本介绍
2009-08-01 10:35 3845Heritrix使用小结 1. H ... -
我对HtmlParser 提取网页各属性的总结及示例说明
2009-07-08 13:50 1903/** * 属性过滤器 * @param parser ... -
数学之美 系列十三 信息指纹及其应用
2009-06-25 22:34 10052006年8月3日 上午 11:17:00 ... -
数学之美系列二十一 - 布隆过滤器(Bloom Filter)
2009-06-25 22:27 14812007年7月3日 上午 09:35:00 ... -
用HTMLParser提取URL页面超链接的一段代码(小试牛刀)
2009-06-06 16:54 7054用HTMLParser提取URL页面超 ... -
深入学习Heritrix---解析处理器(Processor)
2009-06-06 13:17 1596键字: heritrix processor 本节解析与 ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-06 10:02 1170Frontier是Heritrix最核心的组成部分之一,也是最 ... -
深入学习Heritrix---解析CrawlController
2009-06-06 10:00 1345当我们以Web UI方式使用Heritrix时,点击任务开始( ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-03 21:50 1484原创作者: pengranxiang 阅读:231次 ... -
lucene2.0+heritrix示例补充
2009-06-03 21:31 1505由于lucene2.0+heritrix一书示例用的网站( ... -
htmlparser 使用手册
2009-05-30 16:47 28792009-05-08 14:20 需要做一 ...
相关推荐
学习nutch 源码解读 轻松入门 搭建自己的nutch搜索引擎
外网不能访问,故上传,一方面自己备份,一方面也方便大家不能下载的痛苦,只有nutch的源码,没有依赖包,如果需要依赖包,请自行下载
nutch1.6源码,直接从官网也可以下
nutch_src 源码 tar—zip格式
Nutch 1.2 学习笔记,讲的比较清楚的文档
Nutch源码研究
nutch入门学习不错的一本书,有代码,有截图,解释清晰详细。更有助与于了解搜索引擎。
Lucene+nuctch一书的全部源码 测试源码 和几个简单的项目 (Lucene+ Nuctch a book all the source code and test a few simple items)
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。包含nutch-1.5.1的源码
lucene+nutch搜索引擎开发一书源码第一部分,因为源码太大,所以分两部分。
Lucene nutch 搜索引擎 开发 实例 源码 里面包含了Lucene的使用源码 以及nutch使用的源码 还有spider的使用源码 例子的注释比较详细~适合初学者
Apache Nutch 1.7 学习总结,包含详细的Windows和Linux下的安装步骤,有图示。
nutch 源代码的详细分析,对于自己实现自己的搜索引擎很有帮助,尤其是将nutch项目嵌入到 自己的项目 当中很有帮助!
将nutch1.2源码嵌入到myeclipse8.5 在window环境的nutch1.2的简单应用 将其放于tomcat的webapp下
nutch源码分析,很好的一份资料,讲解了搜索引擎
博文链接:https://fuliang.iteye.com/blog/149242
nutch1.2源码,可与hadoop分布式布置,欢迎下载
详细解释了如何搭建nutch开发环境,每一个步骤都有详细说明
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
lucene nutch 搜索引擎 开发 实例 源代码 源码 包含lucene使用的所有源代码,从建立索引,搜索,删除,排序,都有,非常齐全 还有PDF 解析,WORD解析 ,EXCEL,ppt,xml解析等,,都有源码实现 还有nutch源码,spider...