See http://www.gossamer-threads.com/lists/lucene/java-dev/33964? search_string=Lazy%20Field%20Loading;#33964 for the discussion on Java Dev from wayback if you want more background info.

To some extent, I still think Lazy Fields are in the early adopter stage, since they haven't officially been released, so these questions are good for vetting them. And there is still the question of how to handle Document.getField() versus Document.getFieldable ()... but that is a discussion for the dev list.


See below for more...

HTH,
Grant
On Oct 9, 2006, at 5:22 PM, Chris Hostetter wrote:


: If you read the entire source as I did, I becomes clear ! :)
: The interesting code is in FieldsReader.

Not neccessarily.  There can be differneces between how constants are
used and how they are suppose to be used (depending on wether or not the
code using them has any bugs in it)


I will put some javadocs on these (or if someone wants to add a patch...)



: NO_LOAD : skip the field, it's value won't be available

Should the client expecation for "NO_LOAD" fileds be that the
Document.getField/getFieldable will return will null, and that
the List returned by getFields() will not contain anything for these
fields, or should clients assume there may be an "empty" Fieldable object
returned by any of these methods (or included in the list)

My understanding is in the NO_LOAD case, doc.add(Field) is not called, so Document.getField() will return null. Again, I will try to get some javadocs on this part.


: LAZY_LOAD : do not load the field value, but if you request it later, it will : be loaded on request. Note that it can be lazy-loaded only if the reader is
: still opened.

What should clicents expected to happen if the reader has already been
closed?


Search the dev list for "Semantics of a closed IndexInput" for some discussion on this between Doug and I. Unfortunately, the answer isn't all that satisfying, since it is undefined. I would prefer better treatment than that, but it isn't obvious. I originally thought there would be an exception to catch or something (in fact, my original test cases had expected it to be handled), but ended up putting the handling on the application, since the app should know when it has been closed.


: LOAD_FOR_MERGE : internal use when merging segments: it avoids uncompressing
: and recompressing data, the data is merged "binarily".

this seems like a second-class citizen then correct? not intende for
client code to use in their FieldSelector ? ... so what if the do use
it? ... can they expect the data n the Field object to be uncompressed on
the fly if they attempt to access it later?


I would agree it is a second-class citizen, but maybe Otis can add his thoughts, as I think he added this feature. I am unsure of the results of using it outside of the merge scope.


-Hoss


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------
Grant Ingersoll
Sr. Software Engineer
Center for Natural Language Processing
Syracuse University
335 Hinds Hall
Syracuse, NY 13244
http://www.cnlp.org




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to