如何在Lucene中实现我们自己的UID?

时间:2011-03-22 06:11:21

标签: lucene

我希望用以下字段创建索引:
UID
title
owner
content

其中,我不希望UID可以搜索。 [像元数据]
我希望UID的行为类似于docID,以便在我想删除或更新时 我会用这个。
这可能吗 ?这该怎么做 ?

1 个答案:

答案 0 :(得分:2)

您可以通过添加Store.YESIndex.NO来标记为不可搜索,但这不会让您通过使用它轻松更新/删除。您需要为该字段编制索引以允许替换它(使用IndexWriter.UpdateDocument(Term, Document),其中term = new Term("UID", "...")),因此您需要使用Index.ANALYZEDKeywordAnalyzer,或{ {1}}。如果您有一个单值字段,也可以使用Index.NOT_ANALYZED,主键通常是。但是,这使它可以搜索。

要点:

  • FieldCache(可以使用Store.NOFieldCache检索
  • TermsEnum(完整值将被编入索引,包括任何空格)