import java.io.IOException;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.index.Payload;
/**
* TokenStream用来分析文字流,按一定的规则罗列token,在lucene有字节流是即将要索引的文本,或者查询的关键字。
* <p>
* 它是一个抽象类,它的子类有如下两种:
* <ul>
* <li>分词器-Tokenizer,Tokenizer是以Reader对象做为输入;
* <li>过滤器-TokenFilter,主要用来处理词汇单元的部分内容过滤功能。与分词器比较最大的区别是它的输入是另一个TokenStream.多个过滤器可以串接起来,形成管道型的流逝过滤器
* </ul>
* NOTE:子类必须要重写next(Token).
*/
public abstract class TokenStream {
/**
* 返回字节流的下一个Token.
*
* @deprecated 被next(Token)所代替 .
*/
public Token next() throws IOException {
final Token reusableToken = new Token();
Token nextToken = next(reusableToken);
if (nextToken != null) {
Payload p = nextToken.getPayload();
if (p != null) {
nextToken.setPayload((Payload) p.clone());
}
}
return nextToken;
}
/**
* 返回数据流中的下个Token或null、EOS. 通常情况下,为了有着更好的性能,返回的Token和输入的Token应该是同一个对象
* 但是这不是必须,也可以返回一个新的Token. .
* <p>
* 调用该方法的对象和实现该方法的对象有一种合约:
* <ul>
* <li>调用该方法的对象必须在再次调用该方法之前要使用完毕之前的Token.</li>
* <li>实现该方法的在每次设置之前都要先调用clear()。把之前的属性的清空</li>
* </ul>
* 当Token被返回之后,调用者可以随意改变该Token。所以producer如果想保存Token,必须要在返回Token之前Clone()克隆一个新的Token
*
* @param reusableToken 该Token或许被返回,或许返回一个新的Token。reusableToken不能为null。
* @return
*/
public Token next(final Token reusableToken) throws IOException {
assert reusableToken != null;
return next();
}
/**
* 重置数据流的标记位置.这个方法这是可选的。 Reset()通常情况下不需要的.如果
* 但是如果Token要被使用多次,那就有重写实现reset()接口 .
* 如果TokenStream缓存了Token,调用rest()会返回缓存的Token
*/
public void reset() throws IOException {
}
public void close() throws IOException {
}
}
分享到:
相关推荐
《深入剖析Lucene 2.4.1:在Eclipse中的源码调试与运行》 Lucene是一款由Apache软件基金会开发的全文检索库,它提供了高性能、可扩展的信息检索服务。2.4.1版本是Lucene的一个重要里程碑,本文将详细讲解如何在...
在此次提供的"工具包Lucene2.4.1"中,我们聚焦于这个相对较新的版本(相对于发布时)的特性、功能和使用方法。 **一、Lucene简介** Lucene的核心功能是实现文本的索引和搜索,它提供了一个高级的、灵活的、可扩展的...
很好的lucene2.4.1 api文档 我经常用来查的,凑到20字没
《深入剖析Lucene 2.4.1:核心与示例》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。作为Java编写的一个开源项目,Lucene为构建复杂的搜索功能提供了强大的工具集。本次我们将深入探讨Lucene...
《Lucene2.4.1 叶明》这本帮助文档可能是针对 Lucene 2.4.1 版本的一份详尽指南,可能包含了以下内容: 1. **安装与配置**:如何下载、安装和配置 Lucene 2.4.1,以及与现有项目的集成方法。 2. **基本用法**:...
lucene 2.4.1包 暂时最新的 希望对大家有帮助
**Lucene 2.4.1 API 手册** Lucene 是一个开源的全文检索库,由 Apache 软件基金会开发。它提供了一个高级、灵活的搜索功能框架,允许开发者轻松地在应用程序中实现复杂的全文检索功能。Lucene 2.4.1 版本是该库的...
总之,"luke for lucene 2.4.1"是Lucene开发和维护者的得力助手,通过其丰富的功能和直观的界面,我们可以更好地理解和优化基于Lucene的搜索引擎。无论你是新手还是经验丰富的开发者,掌握Luke都将极大地提升你在...
《深入剖析Lucene 2.4.1源码:揭示开源搜索引擎的秘密》 Apache Lucene是一个高度可扩展的全文搜索引擎库,它为开发者提供了构建自己的搜索引擎应用的基础。在这个专题中,我们将深入探讨Lucene 2.4.1版本的源码,...
《深入理解Lucene 2.4.1:全文搜索引擎的核心技术》 Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。作为Java编写的一个开源项目,Lucene为开发者提供了强大的文本检索功能,使得开发全文搜索...
希望对大家有所帮助! lucene最新版本的核心包和demo包,下次传怎么去测试!
《Lucene 2.4.1搜索框架:深入学习与应用》 Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发并维护。在2.4.1这个版本中,它提供了强大的文本检索功能,被广泛应用于各种信息检索系统,如网站搜索、...
《深入理解Apache Lucene 2.4.1:搜索引擎核心技术剖析》 Apache Lucene是一个开源全文检索库,由Java编写,提供了高性能、可扩展的信息检索服务。标题中的"lucene-2.4.1.tar.gz"表明我们正在讨论的是Lucene的2.4.1...
《Apache Lucene 2.4.1:源码与二进制版本详解》 Apache Lucene,一个由Apache软件基金会开发的开源全文搜索引擎库,以其高效、可扩展性及灵活性在IT领域广受赞誉。本资源包含Lucene的2.4.1版本,包括源码(src)和...
这个项目基于Lucene 2.4.1,一个强大的全文搜索引擎库,并且集成了极易中文分词器,以支持中文文档的高效检索。 首先,让我们详细了解一下这四个关键组件: 1. **Struts2**:这是一个基于MVC(Model-View-...
本文将深入探讨"je-analysis-1.5.3"和"lucene-core-2.4.1"这两个分词组件,以及它们在相关场景中的应用。 首先,让我们了解什么是分词。分词,即词语切分,是自然语言处理(NLP)中的基本任务之一,它的目标是将...
Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。 Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索...
"lucene-core-2.4.1.jar"是Lucene的核心库,包含了Lucene的基本功能,如索引构建、查询解析、搜索等功能。虽然2.4.1版本相对较老,但在当时,它已经相当成熟,能够支持各种复杂的文本处理任务。这个库是MMAnalyzer...