nutch-0.9加入中文分词之后的索引有很多博客已经讲到过
我没有使用Cygwin模拟linux环境,而是在Tomcat中运行的nutch。这个项目工程文件是在我们的项目中的一个war包,而这个war包却是最开始的版本,因此我们要在特定的时候修改掉里面的一些文件。
但遇到一个问题是,加入分词之后放到tomcat里面发现搜索不好使了,用Luke打开索引文件可以看到中文分词的效果明显
可是用nutch查询结果却很多时候查不出来
其实原因是因为你加入的中文分词在查询里面没有被应用到,因为war包还是最老版本的war包,其中的一些修改没有体现到
修改以下几个地方,把nutch的中文分词器换成自己的分词器以JE为例
1:修改org.apache.nutch.analysis.NutchAnalysis.java文件
导入import jeasy.analysis.*;
替换其parse()方法如下:
final public Query parse(Configuration conf) throws ParseException,IOException {
Query query = new Query(conf);
StringReader input;
input=new java.io.StringReader(queryString);
org.apache.lucene.analysis.TokenStream tokenizer=new MMAnalyzer().tokenStream(queryString,input);
for(org.apache.lucene.analysis.Token t=tokenizer.next();t!=null;t=tokenizer.next()){
String[] array={t.termText()};
query.addRequiredPhrase(array);
}
{if (true) return query;}
throw new Error("Missing return statement in function");
}
2:修改org.apache.nutch.searcher.Query.java
public static Query parse(String queryString, String queryLang, Configuration conf)
throws IOException {
try {
return fixup(NutchAnalysis.parseQuery(
queryString, AnalyzerFactory.get(conf).get(queryLang), conf), conf);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
3:也是很多文章里面没有提到的一个地方org.apache.nutch.analysis.NutchAnalysis.java文件
/** Construct a query parser for the text in a reader. */
public static Query parseQuery(String queryString, Analyzer analyzer, Configuration conf)
throws IOException {
/**
* 这里我有的修改
*/
NutchAnalysis parser = new NutchAnalysis(
queryString, (analyzer != null) ? analyzer : new MMAnalyzer());//这里把默认的分词器改成自己的分词器
parser.queryString = queryString;
parser.queryFilters = new QueryFilters(conf);
return parser.parse(conf);
}
修改好了,然后用ant编译成nutch-0.9.jar,然后替换掉你tomcat中的nutch工程中的WEB-INF中的nutch-0.9.jar
然后再在这个WEB-INF中添加JE分词包,就大功告成了,这一点非常重要,因为如果不替换,tomcat还是使用了最老版本的nutch-0.9.jar。而我们需要使用的检索是自己添加的中文分词器
分享到:
相关推荐
nutch应用,nutch中文分词,nutch中文乱码
作为舆情监测系统的一部分,本文的目标是基于Nutch,同时,结合目前最常用中文分词技术,根据不同的中文分词方法,实验并得出不同分词方法在性能以及使用环境上的优缺点,以此为舆情监测系统选择合适的中文分词方法...
Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...
用于Nutch的中文分词,效果向单簧管得得好,强烈建议支持这种格式的数据,这是一个里程碑
利用Nutch和IKanalyzer构造中文分词搜索引擎
基于Nutch的中文分词插件实现,张文龙,刘一伟,中文分词是中文垂直搜索引擎中的一个关键技术,分词的好坏直接影响提取文本的精确度。Nutch是一个开源的Web搜索引擎,它为英文用户�
Nutch在Tomcat下的部署.doc
关于nutch的搜索引擎的中文分词的研究,包括了编写与实现
windows下nutch的安装配置以及与tomcat的集成.doc
给个免费的吧!!大家也都不容易,pdf文件,论文
nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...
它提供了我们运行自己的搜索引擎所需的全部工具。 目 录 1. nutch简介...1 1.1什么是nutch..1 1.2研究nutch的原因...1 1.3 nutch的目标..1 1.4 nutch VS lucene.....2 2. nutch的安装与配置.....3 2.1 JDK的安装与...
word分词是一个Java实现的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。 能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。 同时提供了Lucene...
为了使它能够支持中文搜索,本文在分析了Nutch结构的基础上,采用词表分词技术和前向匹配分词算法对中文信息进行分词,以JavaCC脚本实现上下文相关文法中文分析模块,成功实现了Nutch中文搜索功能。 关键词:搜索...
提高nutch运行效率的原理与方法,nutch的运行过程相对来说还是很慢的,对于一些特殊的应用来说,必须对nutch做很多修改来达到提高速度的目的,本人在这方面有深入研究,可以提高2-5倍性能。
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
对自己写搜索引擎的人来说很有帮助,大家一起学习,多多交流,为了赚点分,不好意思要了两分
Eclipse 中编译 Nutch-1.0 运行源代码
Nutch使用总结 信息检索 建立索引 一个让入学者自己搭建搜索引擎的东西