(目前使用 Lucene 4.6)。
只是想知道为什么在org.apache.lucene.document.Document未编入索引的情况下存储文本信息似乎有些不受欢迎。 TextField被索引和标记。 StringField被索引但没有被标记。
但是假设您只需要一个String伴随您的org.apache.lucene.document.Documents 中的其他信息但它本身永远不会成为查询主题的?
只是(在 4.6 中)org.apache.lucene.document.Field.Index有一个“NO”,意思是“不要索引字段值。”,但这目前是“已弃用”。
为什么?有没有更好的方法让“惰性”String信息伴随您的索引(并且可能标记化)更重要的字段?
(差不多)两年后,我希望对事物有更好的理解。
答案似乎是使用StoredField.
事实上TextField, 和StringField被存储在索引中并从索引中检索StoredField。 StoredField是“不可知的”,就像TextField和 一样StringField:所有这些都是 的子类Field,除其他方法外,它还setStringValue具有setIntValue、stringValue和numericValue!
Lucene 6 中没有IntField……但是有一个“红鲱鱼”叫做IntPoint. 这是一个转移注意力的话题,因为它永远不能存储在索引中!
事实上,如果您需要存储Integer您(我认为)需要使用StoredFieldor (如果需要索引)StringField。
请参阅我最近的回答。
| 归档时间: |
|
| 查看次数: |
967 次 |
| 最近记录: |