`
wq163
  • 浏览: 31494 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

lucene分词分析器Analyzer

阅读更多

SimpleAnalyzer
StandardAnalyzer
WhitespaceAnalyzer
StopAnalyzer

测试代码:

import java.io.Reader;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.analysis.StopAnalyzer;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;

public class TestAnalyzer {
    private static String testString1 = "The quick brown fox jumped over the lazy dogs";
    private static String testString2 = "xy&z mail is - xyz@sohu.com";
    public static void testWhitespace(String testString) throws Exception{
        Analyzer analyzer = new WhitespaceAnalyzer();     
        Reader r = new StringReader(testString);     
        Tokenizer ts = (Tokenizer) analyzer.tokenStream("", r);     
        System.err.println("=====Whitespace analyzer====");
        System.err.println("分析方法:空格分割");
        Token t;     
        while ((t = ts.next()) != null) {     
           System.out.println(t.termText());     
        }    
    }
    public static void testSimple(String testString) throws Exception{
        Analyzer analyzer = new SimpleAnalyzer();     
        Reader r = new StringReader(testString);     
        Tokenizer ts = (Tokenizer) analyzer.tokenStream("", r);     
        System.err.println("=====Simple analyzer====");
        System.err.println("分析方法:空格及各种符号分割");
        Token t;     
        while ((t = ts.next()) != null) {     
           System.out.println(t.termText());     
        }    
    }
    public static void testStop(String testString) throws Exception{
        Analyzer analyzer = new StopAnalyzer();     
        Reader r = new StringReader(testString);     
        StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
        System.err.println("=====stop analyzer===="); 
        System.err.println("分析方法:空格及各种符号分割,去掉停止词,停止词包括 is,are,in,on,the等无实际意义的词");
        //停止词
        Token t;     
        while ((t = sf.next()) != null) {     
           System.out.println(t.termText());     
        }    
    }
    public static void testStandard(String testString) throws Exception{
        Analyzer analyzer = new StandardAnalyzer();     
        Reader r = new StringReader(testString);     
        StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
        System.err.println("=====standard analyzer====");
        System.err.println("分析方法:混合分割,包括了去掉停止词,支持汉语");
        Token t;     
        while ((t = sf.next()) != null) {     
            System.out.println(t.termText());     
        }    
    }
    public static void main(String[] args) throws Exception{
//        String testString = testString1;
        String testString = testString2;
        System.out.println(testString);
        testWhitespace(testString);
        testSimple(testString);
        testStop(testString);
        testStandard(testString);
    }

}

运行结果:

xy&z mail is - xyz@sohu.com
=====Whitespace analyzer====
分析方法:空格分割
xy&z
mail
is
-
xyz@sohu.com
=====Simple analyzer====
分析方法:空格及各种符号分割
xy
z
mail
is
xyz
sohu
com
=====stop analyzer====
分析方法:空格及各种符号分割,去掉停止词,停止词包括 is,are,in,on,the等无实际意义
的词
xy
z
mail
xyz
sohu
com
=====standard analyzer====
分析方法:混合分割,包括了去掉停止词,支持汉语
xy&z
mail
xyz@sohu.com

 

分享到:
评论
2 楼 wq163 2008-01-07  
那就手动找一下嘛
1 楼 phoenix2008 2007-12-13  
在netbeans里面导入jar包后,
import org.apache.lucene.analysis
提示找不到包?

相关推荐

    Lucene4.7+IK Analyzer中文分词入门教程

    在这个入门教程中,我们将使用Lucene 4.7版本,结合IK Analyzer,一个专门针对中文分词的开源分析器,来学习如何构建一个简单的搜索引擎。 首先,你需要下载Lucene 4.7和IK Analyzer 2012-FF Hotfix 1。Lucene的...

    c# 中文分词 LUCENE IKAnalyzer

    6. **Lucene接口集成**:为了让C#分词器与Lucene接口兼容,需要理解并实现Lucene的分析器(Analyzer)接口,以便于在索引和查询过程中正确处理中文文本。 7. **性能优化**:在实际应用中,分词速度和资源占用是重要...

    lucene5和IKAnalyzer5的jar包 相匹配

    3. 多语言支持:如果系统需要处理多种语言的搜索,可以考虑使用其他语言分析器,如EnglishAnalyzer,配合Lucene的多Analyzer支持。 4. 日志监控:定期检查日志,监控搜索性能和错误,及时发现并解决问题。 总之,...

    Lucene-Demo.rar Lucene分词的demo

    分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...

    IKAnalyzer和Lucene分词工具下载地址+使用方法

    System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName()); TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(keyWord)); tokenStream.addAttribute...

    Lucene5.21+IkAnalyzer

    IkAnalyzer是一款针对中文的开源分词器,基于Java编写,适用于Lucene、Solr等全文检索引擎。IkAnalyzer2012_V5在前一版本的基础上,增加了对新词汇的处理能力,改进了词典加载机制,提高了分词效率,使得在处理中文...

    lucene第一步---5.中文分词IKAnalyzer和高亮highlighter的使用

    中文分词IKAnalyzer和高亮highlighter的使用”指出,这个主题将探讨如何在Lucene中应用IKAnalyzer进行中文分词,以及如何使用高亮器(highlighter)来突出搜索结果中的关键词。Lucene是Apache软件基金会的一个开放源...

    ikanalyzer中文分词支持lucene7.1.0

    通过设置ikanalyzer为Solr的默认分析器,可以确保在Solr中处理中文文本时,分词效果达到预期。 在实际应用中,可能会遇到以下兼容问题: 1. **版本匹配**:确保ikanalyzer版本与Lucene和Solr版本兼容,避免因版本...

    IKAnalyzer 支持高版本最新Lucene 5.x、6.x、7.x

    - Lucene 6.x进一步优化了内存使用,增强了查询性能,并提供了更丰富的分析器选项,如标准分析器的升级,使得IKAnalyzer可以更好地与之配合。 - Lucene 7.x带来了更多性能提升,例如更优秀的倒排索引结构,以及对...

    lucene.NET 中文分词

    2. **配置分词器**:在Lucene.NET的索引创建阶段,需要配置Analyzer类,指定使用特定的分词器。例如,使用IK Analyzer可以创建`IKAnalyzer analyzer = new IKAnalyzer();`。 3. **字段分析**:在创建Document对象时...

    lucene 所有jar包 包含IKAnalyzer分词器

    《Lucene分词技术与IKAnalyzer详解》 在信息技术领域,搜索引擎是不可或缺的一部分,而Lucene作为Apache软件基金会的一个开放源代码项目,是Java语言开发的全文检索引擎库,为构建高效、可扩展的信息检索应用提供了...

    lucene Analyzer 庖丁解牛 中文分词

    这些方法可以处理一些常见的词汇组合,但也会产生歧义,如“中国银行”和“中国队”,分析器需要通过上下文判断正确的分词方式。 3. **停用词处理**:“的”、“和”、“在”等常用但对检索意义不大的词语被称为...

    模糊查询-lucene-IKAnalyzer

    Lucene是一个高性能、全文本搜索库,而IKAnalyzer是一个专门针对中文分词的开源分析器,它们的结合能够有效地帮助我们处理中文文本的搜索需求。 首先,我们需要了解Lucene的基本概念。Lucene提供了完整的搜索索引...

    Lucene的IK Analyzer 3.0 中文分词器 全解

    - 为 Lucene 全文检索提供优化的查询分析器 IKQueryParser,通过歧义分析算法改进查询关键字的排列组合,提高了检索的精确度和命中率。 3. **分词效果示例** - 分词器能够准确识别并处理各种文本,例如在一段介绍...

    lucene5.4 + IKAnalyzer

    在5.4版本中,Lucene进行了许多优化,包括改进了性能、提升了搜索准确性和内存效率,同时还引入了一些新特性,如更灵活的评分模型和新的分析器。 **IK Analyzer** IK Analyzer(智能中文分词器)是为了解决中文分词...

    lucene4.3.0+IK Analyzer2012FF

    - **配置IK Analyzer**:在Lucene项目中,需要将IK Analyzer的jar包添加到类路径,并在配置文件中指定使用IKAnalyzer作为默认的分词器。 - **创建索引**:利用IK Analyzer进行中文文档的分词,然后使用Lucene的...

    拼音分词 Pinyin4j+pinyinAnalyzer+lucene-analyzers

    pinyinAnalyzer是Lucene的一个分析器,它利用了Pinyin4j的功能,能够将输入的中文文本分词并转化为拼音形式,以便于Lucene这样的全文搜索引擎进行索引和查询。而lucene-analyzers则是Lucene的一系列分析器集合,包含...

    Lucene4.0 IK分词器使用pdf

    ### Lucene4.0 IK分词器使用概览 #### IKAnalyzer:中文分词利器 IKAnalyzer是一款基于Java开发的开源中文分词工具包,自2006年首次发布以来,历经多个版本的迭代,已成为业界广泛认可的中文分词解决方案。其最初...

    lucene3.6+IKAnalyzer2012FF_u1

    1. **配置与集成**:将IKAnalyzer配置到Lucene的分析器链中,确保在索引和搜索时都能使用IKAnalyzer进行分词。 2. **索引优化**:合理设置索引字段,如是否需要存储、是否需要倒排等,以平衡索引大小和搜索性能。 3....

    Lucene分词与查询详解

    分析器(Analyzer)是执行这些操作的类,可以根据不同的需求进行定制。 3. **索引(Indexing)**:索引是Lucene的核心功能之一,它将文本数据转化为可供快速检索的结构。索引过程涉及构建倒排索引(Inverted Index...

Global site tag (gtag.js) - Google Analytics