Lucence-IKAnalyzer中文分词器

Lucence

IKAnalyzer中文分词器

    分词方式:细粒度切分 和 最大词长切分,

    如下为示例:

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包

    最大词长分词后结果类似如下:

    ikanalyzer | 是 | 一个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻量级 | 的 | 中

文 | 分词 | 工具包 |

    最细粒度分词后结果类似如下:

    ikanalyzer | 是 | 一个 | 一 | 个 | 开源 | 的 | 基于 |  java  | 语言 | 开发 | 的 | 轻

量级 | 量级 | 的 | 中文 | 分词 | 工具包 | 工具 | 

导入包和相关配置文件

配置文件IKAnalyzer.cfg.xml

xml version="1.0" encoding="UTF-8"?>

DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 

<properties> 

   <comment>IK Analyzer 扩展配置comment>

   

    

properties>

修改配置类Configuration

修改配置类Configuration的分词器,使用IKAnalyzer分词器,主要参看红色部分代码

public class Configuration {

   private Configuration(){}

  

   public  static final Version LOCAL_VERSION=Version.LUCENE_30;

   //使用IKAnalyzer,当参数为true时,表示使用最大词长分词,false表示使用细粒度分词

   public  staticfinal Analyzer ANALYZER=new IKAnalyzer(true);

   private static Directory DIRECTORY;

   private static String PATH="e:/testdir/lucenedir";

  

   static{

      try{

         DIRECTORY=FSDirectory.open(new File(PATH));

      }catch (Exception e) {

         // TODO: handle exception

         e.printStackTrace();

      }

   }

 

   publicstatic Directory getDIRECTORY() {

      return DIRECTORY;

   }

}

你可能感兴趣的:(lucence全文检索)