0

我目前正在使用以下步骤构建一个术语,

最终静态(类级别):Term t=new Term(fieldName);

在一些功能内部:

t.createTerm(termText); 

似乎 createTerm 方法已从 Lucene 4.3.0 API 中删除,...

我目前只是使用构造函数创建术语,

Term term = new Term(field,text); 

我只是想检查使用最新的 Lucene API 创建术语的最佳/有效方法。有人可以指导我吗?

4

1 回答 1

2

很简单:new Term(fieldName, termText)

在 Lucene 3.x 和之前的版本中,额外的构造函数和 createTerm() 的原因是实习 (String.intern()) 字段名称的额外成本。在 Lucene 4.0 中,字段名称不再被保留,因为索引结构发生了变化,并且不再需要在术语枚举中进行字段<->字段比较。因此,只需使用构造函数创建一个术语。

一般来说 Term 只是一个轻量级的包装器,不再是 Lucene 的基础组件,它只是用于与早期版本的“向后兼容”,主要仅用于构造 Query,如 new TermQuery(Term),.... 从实现观点来看,在 Lucene 4.x 中,每个字段都像一个单独的索引,每个字段的术语由新类 BytesRef 表示,它是一个更大的 byte[] 数组中的一个切片,其中包含许多术语的数据索引中的字段。

乌韦

http://lucene.472066.n3.nabble.com/Best-way-to-construct-term-using-Lucene-4-3-0-API-td4062388.html

于 2013-05-10T17:27:44.820 回答