Hi Marc,
well that would be really, really nice. But Lucene doesn't allow you to update a single field: you'll need the original (pre-tokenized) values for all the fields, and rebuild all the Documents instances.
So very fine grained is not possible, but you can still get some good efficiency:
Quote:
But do you really want to instantiate thousands of objects in order to update one field? And do you want to risk Hibernate's magic from deciding it needs to instantiate this collection ever?
Enable a second level cache. You should really have all relations lazily loaded, if possible, and with a second level cache you'll not reload the same value more than once. You'll generate some temporary objects in memory, but they are very short lived and the GC knows how to optimize that. Unfortunately Lucene requires all the objects, so that's what we feed it.
Quote:
The Massindexer and the corresponding filter functionality HSEARCH-499, hopefully part of 4.1.0.Final
Could you explain that? I'm missing something..
Lucene developers are working on a special kind of join which would enable you to split a Document in two (but not more than two), so we'll need to update only one of the document parts. When that will be ready, we'll think how to expose it in some way which makes sense without the user having to know all the Lucene index format details.