`
gengu
  • 浏览: 86752 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

在tomcat中运行得nutch加入中文分词后的检索

阅读更多

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和IKanalyzer构造中文分词搜索引擎)

    在Nutch 1.2中集成IKAnalyzer,需要修改NutchAnalysis.jj文件,将SIGRAM规则调整为支持连续的汉字,然后在代码中初始化IKTokenizer,使其能够处理输入的文本流。通过这种方式,Nutch现在能够对抓取的网页内容进行...

    基于Nutch中文分词的研究与实现

    作为舆情监测系统的一部分,本文的目标是基于Nutch,同时,结合目前最常用中文分词技术,根据不同的中文分词方法,实验并得出不同分词方法在性能以及使用环境上的优缺点,以此为舆情监测系统选择合适的中文分词方法...

    Nutch中文分词插件的编写与配置

    Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...

    Nutch在Tomcat下的部署.doc

    在本文中,我们将深入探讨如何在Tomcat环境下部署Nutch以及解决相关问题。 首先,部署Nutch到Tomcat涉及到以下步骤: 1. **准备Nutch的WAR包**:你需要下载Nutch的源代码或预编译的WAR文件。这里以Nutch 0.9为例,...

    nutch的中文分词词库文件

    用于Nutch的中文分词,效果向单簧管得得好,强烈建议支持这种格式的数据,这是一个里程碑

    论文研究-基于Nutch的中文分词插件实现 .pdf

    基于Nutch的中文分词插件实现,张文龙,刘一伟,中文分词是中文垂直搜索引擎中的一个关键技术,分词的好坏直接影响提取文本的精确度。Nutch是一个开源的Web搜索引擎,它为英文用户�

    基于Java的搜索引擎Nutch中文搜索技术研究

    ### 基于Java的搜索引擎Nutch中文搜索技术研究 #### 摘要与背景介绍 随着互联网技术的发展,搜索引擎已成为人们获取信息的重要途径之一。Nutch作为一个优秀的基于Java的开源搜索引擎,其英文搜索功能非常强大,但在...

    nutch开发资料 搜索引擎

    10. **部署与运行**:Nutch项目可以在本地单机模式下运行,也可以在Hadoop集群上分布式运行。通过命令行工具,可以启动爬虫、生成索引、执行搜索等操作。 总的来说,这份"nutch开发资料 搜索引擎"包含的资源对于想...

    Nutch中文教程nutcher.zip

    nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...

    Nutch使用总结 信息检索 建立索引 搜索引擎

    - **分词插件**: Nutch支持使用第三方分词库,如IK Analyzer或HanLP,进行中文分词。 - **URL过滤**: 可以通过编写或配置URL过滤器(如`regex-urlfilter.txt`)来控制哪些URL被爬取。 - **插件结构**: Nutch的灵活性...

    Windows系统下Nutch检索工具的搭建步骤

    本文将详细介绍如何在Windows系统下搭建Nutch检索工具,旨在为从事信息检索方向的专业人士提供一份实用的参考指南。 #### 二、准备工作 搭建Nutch之前,需要完成一些基本的准备工作: 1. **操作系统**:推荐使用...

    Apache Nutch 1.7 学习总结

    在完成Nutch 1.7的搭建后,你可以进一步研究其工作原理,包括爬虫策略、链接分析算法、分词技术等。同时,Nutch与Hadoop结合可以处理大规模的数据抓取和索引,这在大数据领域有着广泛的应用。通过深入学习,你可以...

    Apache Nutch 1.7 在windows和Linux下的安装

    * 在安装完成后,需要配置 Cygwin 的环境变量,将 Cygwin 的 bin 目录添加到系统的 PATH 变量中。 * 之后,需要安装 Cygwin 的一些必要的包,例如 openssh、openssl、curl 等。 3. 安装 Nutch 1.7 安装 Nutch 1.7 ...

    Nutch入门教程.pdf

    Nutch API和OpenSearch API则允许开发者在应用程序中集成Nutch搜索引擎功能。 Nutch的目标是让每个人都能容易地、低成本地配置一个世界级的Web搜索引擎。Nutch的扩展性使其不仅适用于学术和政府站点的搜索,也可以...

Global site tag (gtag.js) - Google Analytics