看《lucene in action》时,对文中的示例代码实践时发现Field的一些方法不存在(Field.text, Field.Keyword...)。怀疑是书中采用的版本过老。我下来的是最新的2.1版本(17 February 2007 - Release 2.1 available)。查看了下其附带的api doc,Field类方法中的确没有书上的。取而代之的是直接使用Field的构造函数,共有5种构造函数:
Field(String name, byte[] value, Field.Store store)
Field(String name, Reader reader)
Field(String name, Reader reader, Field.TermVector termVector)
Field (String name, String value, Field.Store store, Field.Index index)
Field (String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
依照doc说明用新构造函数试写了一下,得到新旧的方法对应:
Field.Index-----Field.Store-------- 说明
TOKENIZED---------- YES--------- 被分词索引且存储(Field.Text)
TOKENIZED----------- NO--------- 被分词索引但不存储(Field.Unstored)
NO--------------------- YES--------- 附属物。如URL等(Field.UnIndexed)
UN_TOKENIZED------Y/N-------- 不被分词作为一个整体(Field.Keyword)
NO----------------------NO----------不用
没有评论:
发表评论