基于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版本。
lucene3.5源码。 方便开发人员对lucene进行扩展
标题 "conquiris-lucene-3.5.0.zip" 提供了我们即将探讨的知识点:Lucene,一个开源的全文搜索引擎库。Lucene是由Apache软件基金会开发的Java库,它提供了高级文本分析和索引功能,使得开发者可以轻松地在应用程序中...
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:Java搜索引擎库的核心技术解析》 在Java开发领域,Lucene是一个广泛使用的全文检索库,它为开发者提供了强大的文本搜索功能。标题中的"lucene-3.5.0.jar"是Lucene的一个特定版本——3.5.0...
《深入理解Lucene 3.5.0:从lukeall-3.5.0.jar与lucene-core-3.5.0.jar谈起》 在信息技术领域,搜索引擎的构建是至关重要的一环,而Apache Lucene作为一款开源全文检索库,为开发者提供了强大的文本检索功能。本文...
《Apache Lucene 3.5.0:全文检索与索引核心技术详解》 Apache Lucene 是一个开源的全文检索库,被广泛应用于构建高效的搜索引擎和信息检索系统。在这个3.5.0版本中,Lucene 提供了一系列强大的功能,包括文本分析...
Lucene是一个开源全文检索库,由Apache...从2.3到3.5.0的版本升级,不仅带来了功能增强,也反映了Lucene在搜索领域的持续发展。对于开发者来说,深入理解和熟练运用这些知识点,将能够构建出高效、精准的全文搜索引擎。
文章主要研究和应用了基于Lucene的搜索引擎,其特点是利用开源网络爬虫工具抓取互联网信息,并通过Lucene的API对特定信息进行索引和搜索。下面详细介绍相关知识点。 1. Lucene基础 Lucene是由Apache软件基金会提供...
lucene-3.5.0.chm文档,英文版
《基于Lucene的小型搜索引擎构建详解》 在信息爆炸的时代,如何快速、准确地找到所需信息成为了一项挑战。搜索引擎作为解决这一问题的关键工具,其技术实现也引起了广泛关注。本篇将详细介绍一个基于Apache Lucene...
**基于Lucene技术的增量索引** 在信息技术领域,全文搜索引擎是处理大量数据查询的关键工具。Apache Lucene是一个开源的全文检索库,被广泛应用于构建高效、可扩展的搜索功能。本文将深入探讨如何利用Lucene实现...
**基于Lucene的中型搜索引擎(C#)** 在IT领域,搜索引擎是不可或缺的一部分,它们能够高效地处理海量数据,帮助用户快速找到所需信息。本文将深入探讨一个基于Apache Lucene的中型搜索引擎实现,该实现是由...
“基于LUCENE的搜索引擎的设计与实现源代码”项目,提供了从数据抓取、索引构建到搜索功能实现的完整流程,是学习和实践LUCENE的好材料。通过阅读源代码,我们可以了解如何将理论知识应用到实际开发中,提升搜索引擎...
### 一种基于Lucene检索引擎的全文数据库的研究与实现 #### 1. 引言 随着信息技术的飞速发展和互联网的普及,大量的文本信息被数字化存储,这为信息检索带来了前所未有的挑战和机遇。传统的数据库管理系统(DBMS)...
**基于Lucene的搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java编写的一个高性能、可扩展的信息检索库,为开发者提供了构建搜索功能的基础框架。这个课程设计创建了一个简单的...
【标题】:“基于Lucene的Web站内信息搜索系统” 【描述】:Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发并维护。它为开发者提供了在Java应用程序中实现全文检索功能的工具包。当构建一个Web站内...
【描述】提到的“在学校教育网上搜的 不知道帮助大不大 看看吧 也许会用得到 好多个 可能有重复”暗示了资源可能包含多个关于Lucene全文检索系统的PDF文档,这些文档可能来源于不同的来源,可能涵盖相同或相似的主题...