• 用Nutch搭建搜索引擎和爬虫--jinyan520.com - [杂项]

    2010-10-15

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://sunhuang.blogbus.com/logs/78873664.html

    Nutch是Java平台上运用得较为广泛的爬虫工具,开发社区也相当活跃,版本更新很快。可以利用Nutch配置中文分词工具,搭建一个简单的抓取和搜索服务。

    工具/原料

    • Nutch-1.1
    • IK中文分词(也可以用Paoding或者Imdict)
    • Linux环境或(Cygwin)
    From http://jinyan520.com/article/3c343ff75183cc0d3779631c.html
    1. 到Nutch.apache.org下载最新版本的Nutch
    2. 到code.google.com/p/ik-analyzer/下载IK分词器
    3. 修改部分Nutch源代码,以使其适应中文搜索。(其实Nutch自带有语言检测机制,不过不太靠谱,一般都是强制采用中文分词)中文分词是以插件形式加载的。
    4. 实现一个继承了NutchAnalyzer类的中文分词类,覆盖其中的tokenStream方法。
      保存在src/plugin/analyze-zh上(名字自己定),并填写plugin.xml文件。
    5. 修改NutchAnalysis的parse方法,代码大致如下:
      Query query = new Query(conf);        
      StringReader input = new StringReader(queryString);        org.apache.lucene.analysis.Tokenizer tokenizer = new org.wltea.analyzer.lucene.IKTokenizer(input,true);        
      terator<AttributeImpl> its = tokenizer.getAttributeImplsIterator();        
      while(tokenizer.incrementToken())        {            TermAttribute t = tokenizer.getAttribute(TermAttribute.class);            String[] array = { t.term() };            //OffsetAttribute oa = tokenizer.getAttribute(OffsetAttribute.class);            query.addRequiredPhrase(array);        }                return query;
    6. 添加searcher.dir属性到nutch-site.xml中,指定索引文件所在目录


    收藏到:Del.icio.us