`
haiyupeter
  • 浏览: 426143 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

IKAnalyzer基于lucene2.0版本API开发

阅读更多

使用说明:
IKAnalyzer
基于lucene2.0 版本API 开发,实现了以词典分词为基础的正反向全切分算法,是Lucene Analyzer 接口的实现,代码使用例子如下:

  1.  

      import org.mira.lucene.analysis.IK_CAnalyzer <------- 引用类

      import .....

       

      public class IKAnalyzerTest extends TestCase {

       

         RAMDirectory directory;

         private IndexSearcher searcher;

       

         public void setUp() throws Exception {

       

           directory = new RAMDirectory();

           IndexWriter writer = new IndexWriter(directory,

                            new IK_CAnalyzer(), <------- 实例化类

                                true);

       

           Document doc = new Document();

           doc.add(Field.Keyword("title", " 中文分词测试"));

           doc.add(Field.Text("description", "Illidium Space Modulator"));

           writer.addDocument(doc);

           writer.close();

           searcher = new IndexSearcher(directory);

        }

       

        public void testTermQuery() throws Exception {

          Query query = new TermQuery(new Term("title", " 中文分词"));

          Hits hits = searcher.search(query);

          assertEquals(1, hits.length());

        }

      }



      分词效果测试,命令行如下:
      java -classpath IKAnalyzer.jar;lucene-core-2.0.0.jar org.mira.lucene.analysis.IK_CAnalyzer
      中华人民共和国香港特别行政区

      性能与特性:
      1.
      正向全切分算法,42 万汉字字符/ 每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G 内存 WinXP
      2.
      对数量词、地名、路名的优化处理
      3.
      对未知词汇采用自识别结合二元切分算法,确保搜索召回率

      V 2.0.2
      修订 Bata 版对二元切分的缺陷

      正向全切分分词器:org.mira.lucene.analysis.IK_CAnalyzer (适合建索引时使用)

      正向最大全切分分词器:org.mira.lucene.analysis.MIK_CAnalyzer (适合用户输入检索时使用)

      下面演示 正向最大全切分分词器 效果:

      例子:中华人民共和国香港特别行政区
      0 - 7 =
      中华人民共和国
      7 - 14 =
      香港特别行政区


      例子:据路透社报道,印度尼西亚社会事务部一官员星期二(29) 表示,日惹市附近当地时间27 日晨553 分发

      生的里氏6.2 级地震已经造成至少5427 人死亡?20000 余人受伤,近20 万人无家可归。
      1 - 4 =
      路透社
      4 - 6 =
      报道
      7 - 12 =
      印度尼西亚
      12 - 14 =
      社会
      14 - 17 =
      事务部
      17 - 18 =

      18 - 20 =
      官员
      20 - 23 =
      星期二
      24 - 27 = 29

      28 - 30 =
      表示
      31 - 34 =
      日惹市
      34 - 36 =
      附近
      36 - 40 =
      当地时间
      40 - 43 = 27

      43 - 44 =

      44 - 46 = 5

      46 - 49 = 53

      48 - 50 =
      分发
      49 - 51 =
      发生
      52 - 54 =
      里氏
      54 - 58 = 6.2

      58 - 60 =
      地震
      60 - 62 =
      已经
      62 - 64 =
      造成
      64 - 66 =
      至少
      66 - 71 = 5427

      71 - 73 =
      死亡
      74 - 79 = 20000
      79 - 81 =
      余人
      81 - 83 =
      受伤
      84 - 85 =

      85 - 89 = 20
      万人
      89 - 93 =
      无家可归

  2.     import org.mira.lucene.analysis.IK_CAnalyzer <-------  引用类  
       import .....  
          
       public class IKAnalyzerTest extends TestCase {  
         
          RAMDirectory directory;  
         private IndexSearcher searcher;  
         
          public void setUp() throws Exception {  
        
            directory = new RAMDirectory();  
            IndexWriter writer = new IndexWriter(directory,  
                             new IK_CAnalyzer(), <-------  实例化类  
                                 true);  
         
            Document doc = new Document();  
            doc.add(Field.Keyword("title", " 中文分词测试"));  
            doc.add(Field.Text("description", "Illidium Space Modulator"));  
            writer.addDocument(doc);  
            writer.close();  
           searcher = new IndexSearcher(directory);  
         }  
         
         public void testTermQuery() throws Exception {  
           Query query = new TermQuery(new Term("title", " 中文分词"));  
           Hits hits = searcher.search(query);  
           assertEquals(1, hits.length());  
         }  
       }  
    
     
分享到:
评论

相关推荐

    Lucene.Net_2_4_0.rar

    3. **分词与分析**:内置多种语言的分词器,如英文的 StandardAnalyzer 和中文的 IKAnalyzer,可以对文本进行预处理,提高搜索准确度。 4. **内存与磁盘索引**:支持在内存和磁盘上建立索引,平衡性能与资源消耗。 5...

    OSChina 所有jar

    16 IKAnalyzer3.2.0Stable.jar 中文分词库 17 java_memcached-release_2.0.1.jar memcached客户端包,无用 18 jopenid-1.07.jar gmail登录 19 lucene-core-3.0.0.jar 搜索引擎 20 lucene-highlighter-3.0.0.jar ...

    springmvc 各种jar包

    28,IKAnalyzer-3.2.8.jar 29,im4java-1.4.0.jar 30,jackson-annotations-2.1.4.jar 31,jackson-core-2.1.4.jar 32,jackson-databind-2.1.4.jar 33,javassist-3.15.jar 34,jaxen-1.1.1.jar 35,jaxme-api-0.3....

    java开源包1

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包11

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包2

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包3

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包6

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包5

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包10

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包4

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包8

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包7

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包9

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    java开源包101

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    Java资源包01

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

    JAVA上百实例源码以及开源项目源代码

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

Global site tag (gtag.js) - Google Analytics