`
yeshaoting
  • 浏览: 684043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于Lucene3.5.0如何从TokenStream获得Token

 
阅读更多

基于Lucene3.5.0如何从TokenStream获得Token

http://blog.csdn.net/hiphopmattshi/article/details/7226326

 

通过学习Lucene3.5.0的doc文档,对不同release版本 lucene版本的API改动做分析。最后找到了有价值的改动信息。

LUCENE-2302: Deprecated TermAttribute and replaced by a new CharTermAttribute. The change is backwards compatible, so mixed new/old TokenStreams all work on the same char[] buffer independent of which interface they use. CharTermAttribute has shorter method names and implements CharSequence and Appendable. This allows usage like Java's StringBuilder in addition to direct char[] access. Also terms can directly be used in places where CharSequence is allowed (e.g. regular expressions). (Uwe Schindler, Robert Muir)

以上信息可以知道,原来的通过的方法已经不能够提取响应的Token了

 StringReader reader = new StringReader(s);  

TokenStream ts =analyzer.tokenStream(s, reader);  
TermAttribute ta = ts.getAttribute(TermAttribute.class); 
 

 

通过分析Api文档信息 可知,CharTermAttribute已经成为替换TermAttribute的接口

因此我编写了一个例子来更好的从TokenStream中提取Token

package com.segment;  
  
import java.io.StringReader;  
import org.apache.lucene.analysis.Analyzer;  
import org.apache.lucene.analysis.Token;  
import org.apache.lucene.analysis.TokenStream;  
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;  
import org.apache.lucene.analysis.tokenattributes.TermAttribute;  
import org.apache.lucene.util.AttributeImpl;  
import org.wltea.analyzer.lucene.IKAnalyzer;  
  
  
public class Segment {  
    public static String show(Analyzer a, String s) throws Exception {  
  
        StringReader reader = new StringReader(s);  
        TokenStream ts = a.tokenStream(s, reader);  
        String s1 = "", s2 = "";  
        boolean hasnext= ts.incrementToken();  
        //Token t = ts.next();  
        while (hasnext) {  
            //AttributeImpl ta = new AttributeImpl();  
            CharTermAttribute ta = ts.getAttribute(CharTermAttribute.class);  
            //TermAttribute ta = ts.getAttribute(TermAttribute.class);  
              
            s2 = ta.toString() + " ";  
            s1 += s2;  
            hasnext = ts.incrementToken();  
        }  
        return s1;  
    }  
  
    public String segment(String s) throws Exception {  
        Analyzer a = new IKAnalyzer();  
        return show(a, s);  
    }  
    public static void main(String args[])  
    {  
        String name = "我是俊杰,我爱编程,我的测试用例";  
        Segment s = new Segment();  
        String test = "";  
        try {  
            System.out.println(test+s.segment(name));  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
  
}  
 

 

分享到:
评论

相关推荐

    lucene-3.5.0.zip

    最新版本的lucene,3.5.0版本。

    lucene3.5.0源码

    lucene3.5源码。 方便开发人员对lucene进行扩展

    conquiris-lucene-3.5.0.zip

    标题 "conquiris-lucene-3.5.0.zip" 提供了我们即将探讨的知识点:Lucene,一个开源的全文搜索引擎库。Lucene是由Apache软件基金会开发的Java库,它提供了高级文本分析和索引功能,使得开发者可以轻松地在应用程序中...

    lucene 3.5.0 api Java Documentation

    Lucene Java Documentation This is the official documentation for Lucene Java Please use the menu on the left to access the Javadocs and different documents.

    lucene-3.5.0.jar

    《深入理解Lucene 3.5.0:Java搜索引擎库的核心技术解析》 在Java开发领域,Lucene是一个广泛使用的全文检索库,它为开发者提供了强大的文本搜索功能。标题中的"lucene-3.5.0.jar"是Lucene的一个特定版本——3.5.0...

    lucene-core-3.5.0.jar+lukeall-3.5.0.jar

    《深入理解Lucene 3.5.0:从lukeall-3.5.0.jar与lucene-core-3.5.0.jar谈起》 在信息技术领域,搜索引擎的构建是至关重要的一环,而Apache Lucene作为一款开源全文检索库,为开发者提供了强大的文本检索功能。本文...

    lucene-3.5.0

    《Apache Lucene 3.5.0:全文检索与索引核心技术详解》 Apache Lucene 是一个开源的全文检索库,被广泛应用于构建高效的搜索引擎和信息检索系统。在这个3.5.0版本中,Lucene 提供了一系列强大的功能,包括文本分析...

    lucene2.3API中文文档、lucene-3.5.0JAR包

    Lucene是一个开源全文检索库,由Apache...从2.3到3.5.0的版本升级,不仅带来了功能增强,也反映了Lucene在搜索领域的持续发展。对于开发者来说,深入理解和熟练运用这些知识点,将能够构建出高效、精准的全文搜索引擎。

    基于Lucene的搜索引擎的研究与应用

    文章主要研究和应用了基于Lucene的搜索引擎,其特点是利用开源网络爬虫工具抓取互联网信息,并通过Lucene的API对特定信息进行索引和搜索。下面详细介绍相关知识点。 1. Lucene基础 Lucene是由Apache软件基金会提供...

    lucene-3.5.0.chm

    lucene-3.5.0.chm文档,英文版

    基于Lucene的小型搜索引擎

    《基于Lucene的小型搜索引擎构建详解》 在信息爆炸的时代,如何快速、准确地找到所需信息成为了一项挑战。搜索引擎作为解决这一问题的关键工具,其技术实现也引起了广泛关注。本篇将详细介绍一个基于Apache Lucene...

    基于lucene技术的增量索引

    **基于Lucene技术的增量索引** 在信息技术领域,全文搜索引擎是处理大量数据查询的关键工具。Apache Lucene是一个开源的全文检索库,被广泛应用于构建高效、可扩展的搜索功能。本文将深入探讨如何利用Lucene实现...

    基于Lucene的中型搜索引擎(C#)

    **基于Lucene的中型搜索引擎(C#)** 在IT领域,搜索引擎是不可或缺的一部分,它们能够高效地处理海量数据,帮助用户快速找到所需信息。本文将深入探讨一个基于Apache Lucene的中型搜索引擎实现,该实现是由...

    基于LUCENE的搜索引擎的设计与实现源代码

    “基于LUCENE的搜索引擎的设计与实现源代码”项目,提供了从数据抓取、索引构建到搜索功能实现的完整流程,是学习和实践LUCENE的好材料。通过阅读源代码,我们可以了解如何将理论知识应用到实际开发中,提升搜索引擎...

    一种基于Lucene检索引擎的全文数据库的研究与实现

    ### 一种基于Lucene检索引擎的全文数据库的研究与实现 #### 1. 引言 随着信息技术的飞速发展和互联网的普及,大量的文本信息被数字化存储,这为信息检索带来了前所未有的挑战和机遇。传统的数据库管理系统(DBMS)...

    基于Lucene的搜索引擎

    **基于Lucene的搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java编写的一个高性能、可扩展的信息检索库,为开发者提供了构建搜索功能的基础框架。这个课程设计创建了一个简单的...

    基于Lucene的Web站内信息搜索系统

    【标题】:“基于Lucene的Web站内信息搜索系统” 【描述】:Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发并维护。它为开发者提供了在Java应用程序中实现全文检索功能的工具包。当构建一个Web站内...

    基于Lucene的全文检索系统

    【描述】提到的“在学校教育网上搜的 不知道帮助大不大 看看吧 也许会用得到 好多个 可能有重复”暗示了资源可能包含多个关于Lucene全文检索系统的PDF文档,这些文档可能来源于不同的来源,可能涵盖相同或相似的主题...

Global site tag (gtag.js) - Google Analytics