本文记录Lucene+Paoding的使用方法图解:
一、下载Lucene(官网:http://archive.apache.org/dist/lucene/java/)本文中使用的是:2.9.4,下载后解压,Lucene所需要的基本jar文件如下列表:
     lucene-core-2.9.4.jar                   Lucene核心jar
     lucene-analyzers-2.9.4.jar            Lucene分词jar 
     lucene-highlighter-2.9.4.jar           Lucene高亮显示jar
二、由于Lucene中的中文分词实现不了我们所需要的功能,所以,需要下载第三方包(疱丁解牛)(官网:http://code.google.com/p/paoding/ )最新版本为:paoding-analysis-2.0.4-beta.zip 下载解压后,Lucene使用'疱丁'所需要的jar文件如下列表:
    paoding-analysis.jar                       Lucene针对中文分词需要jar 
    commons-logging.jar                     日志文件
    {PADODING_HOME}/dic          疱丁解牛词典目录(PAODING_HOME:代表解压后的paoding目录)
三、打开Eclipse并创建一个Java Project(项目名称和项目所在的路径不能包含空格),本例中Project Name:Paoding
       1_1:在Paoding Project 创建一个Folder--lib(用于存放所有的jar),把前面所说的jar文件拷贝到lib目录下,并把lib下所有的jar添加到项目ClassPath下.   
      1_2:拷贝{PAODING_HOME}/dic目录 至   Paoding项目/src下整个项目结构图如下:
四、创建TestFileIndex.java类,实现功能是:把d:\data\*.txt所有文件读入内存中,并写入索引目录(d:\luceneindex)下
TestFileIndex.java
package com.lixing.paoding.index;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;

public class TestFileIndex {
   public static void main(String[] args) throws Exception {
    String dataDir= "d:/data";
    String indexDir= "d:/luceneindex";
    
    File[] files= new File(dataDir).listFiles();
    System.out.println(files.length);
    
    Analyzer analyzer= new PaodingAnalyzer();
    Directory dir=FSDirectory.open( new File(indexDir));
    IndexWriter writer= new IndexWriter(dir, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);
    
     for( int i=0;i<files.length;i++){
      StringBuffer strBuffer= new StringBuffer();
      String line="";
      FileInputStream is= new FileInputStream(files[i].getCanonicalPath());
      BufferedReader reader= new BufferedReader( new InputStreamReader(is, "gb2312"));
      line=reader.readLine();
       while(line != null){
        strBuffer.append(line);
        strBuffer.append( "\n");
        line=reader.readLine();
      }
        
      Document doc= new Document();
      doc.add( new Field( "fileName", files[i].getName(), Field.Store.YES, Field.Index.ANALYZED));
      doc.add( new Field( "contents", strBuffer.toString(), Field.Store.YES, Field.Index.ANALYZED));
      writer.addDocument(doc);
      reader.close();
      is.close();
    }
    
    writer.optimize();
    writer.close();
    dir.close();
    System.out.println( "ok");
  }
}

五、创建TestFileSearcher.java,实现在的功能是:读取索引中的内容:
TestFileSearcerh.java
package com.lixing.paoding.index;

import java.io.File;

import net.paoding.analysis.analyzer.PaodingAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class TestFileSearcher {
   public static void main(String[] args) throws Exception {
    String indexDir = "d:/luceneindex";
    Analyzer analyzer = new PaodingAnalyzer();
    Directory dir = FSDirectory.open( new File(indexDir));
    IndexSearcher searcher = new IndexSearcher(dir, true);
    QueryParser parser = new QueryParser(Version.LUCENE_29, "contents",analyzer);
    Query query = parser.parse( "呼救");
     //Term term=new Term("fileName", "大学");
     //TermQuery query=new TermQuery(term);
    
    TopDocs docs=searcher.search(query, 1000);
    ScoreDoc[] hits=docs.scoreDocs;
    System.out.println(hits.length);
     for( int i=0;i<hits.length;i++){
      Document doc=searcher.doc(hits[i].doc);
      System.out.print(doc.get( "fileName")+ "--:\n");
      System.out.println(doc.get( "contents")+ "\n");
    }
    
    searcher.close();
    dir.close();
  }
}

本文出自 “李新博客” 博客,请务必保留此出处http://kinglixing.blog.51cto.com/3421535/702663

转载于:https://www.cnblogs.com/116913829/p/4391712.html

(转)Lucene中文分词图解相关推荐

  1. 当前几个主要的Lucene中文分词器的比较

    http://blog.fulin.org/2009/08/lucene_chinese_analyzer_compare.html 1. 基本介绍: paoding :Lucene中文分词" ...

  2. 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较...

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

  3. java lucene 中文分词_Lucene的中文分词器IKAnalyzer

    分词器对英文的支持是非常好的. 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好. 国人林良益写的IK Ana ...

  4. 转 Lucene中文分词组件 JE-Analysis 1.5.1 天狼

    2006-05-29 17:40     主题:  [发布]Lucene中文分词组件 JE-Analysis 1.5.1   天狼 注册于: 2006-05-28 00:23 帖子总数: 103 离线 ...

  5. Lucene 中文分词器概述 与 Ik-Analyzer 使用教程

    目录 中文分词器简述 Ik-Analyzer 概述与特性 Ik-Analyzer 下载与使用 创建索引 查询索引 Ik-Analyzer 官方示例源码 中文分词器简述 1.Apache Lucene  ...

  6. Lucene中文分词Demo

    本文记录Lucene+Paoding的使用方法图解: 一.下载Lucene(官网:http://archive.apache.org/dist/lucene/java/)本文中使用的是:2.9.4,下 ...

  7. 全文检索lucene中文分词的一些总结

    为什么80%的码农都做不了架构师?>>>    全文检索几乎是所有内容管理系统软件(CMS)必备的功能,在对公司的CMS产品的开发维护过程中,全文检索始终是客户重点关注的模块,为满足 ...

  8. 分享Lucene中文分词组件IK Analyzer V3.2.8

    IK Analyzer 3.X介绍   IK Analyzer是一个开源的,基于java诧言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了3个大版本 ...

  9. Lucene 中文分词器 Ik-Analyzer 使用教程

    参考: https://blog.csdn.net/wangmx1993328/article/details/82258785

最新文章

  1. (转)koogra--Excel文件读取利器
  2. ubuntu 14.04 安装 vmware 10 X64 后无法启动解决方法
  3. 全球及中国汽车轮胎再制造市场销售产值与运营发展模式分析报告2022年
  4. 【Java学习笔记四】Java中的包
  5. 如何找出光纤微米级别的脏污?女朋友的一个举动给了我灵感
  6. ROS 基础: 在同一个节点里订阅和发布消息
  7. 架设WIN32汇编程序的开发环境
  8. ImportError: No module named managers
  9. 刷题42-m升水倒入n个杯子(动态规划)
  10. python绘图小dome
  11. 计算机学科专业知识两门课,计算机学科两门专业课的融会贯通教学改革探讨
  12. 重置微信内置浏览器字体大小
  13. Linux环境下部署Dubbo 监控中心
  14. ltoa() 、itoa()函数实现
  15. 360网站卫士SQL注入绕过案例一个
  16. IDEA创建JavaWeb项目配置
  17. html代码正方形变椭圆,椭圆伸缩变换公式
  18. 全球与中国Autodesk渠道合作伙伴市场现状及未来发展趋势
  19. 7.11 读《如何阅读一本书》有感
  20. AcWing寒假每日一题 蹄球

热门文章

  1. vue在IE和360兼容模式下无法显示问题
  2. 【新笔记本环境配置】win10下 Anaconda+Vscode+MobaXterm安装
  3. Docker安装OPOpenWrt
  4. browserify_Browserify入门
  5. 争取活动经费的尖锐斗争(2)
  6. 相约一场非遗聚会,云南非遗影像展盛大开幕
  7. 洛谷p1373 DP
  8. 关于嵌入式是前端还是后端
  9. 学习源码第二天(渐入佳境)
  10. 游戏:Flappy Bird[飞行的鸟](C++)2.0