lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <>
Subject Re: Flex & Docs/AndPositionsEnum
Date Tue, 09 Feb 2010 16:04:26 GMT
On Tue, Feb 9, 2010 at 9:08 AM, Renaud Delbru <> wrote:
> Hi Michael,
> On 09/02/10 13:35, Michael McCandless wrote:
>> It's great that you're testing the flex APIs... things are still "in
>> flux" as you've seen.  There's another big patch pending on
>> LUCENE-2111...
> So, does it mean that the codec interface is likely to change ? Do I need to
> be prepared to change again all my code ;o) ?

This particular patch doesn't change the Codecs API -- it "only"
factors out the Multi* APIs from MultiReader.  Likely you won't need
to change your codec... but try applying the patch and see :)

However: if you consume the flex API directly, on top of multi readers
(something you shouldn't do, for performance reasons), you will have
to use MultiField's static methods to get the enums.

>> Out of curiosity... in what circumstances do you see a Multi*Enum
>> appearing?
>> Lucene's core always searches "by segment".  Are you doing something
>> external (directly using the flex APIs against a
>> Multi/DirectoryReader)?
> I am using the flex API with the high level Lucene interface (IndexWriter
> and IndexReader).
> I am creating a RamDirectory, register my codec into the IndexWriter, and
> index 64 documents. Then, I use the IndexReader.termPositionsEnum to get my
> own DocsAndPositionsEnum in order to check if all the information that have
> been stored in the new index data structure are correctly retrieved.
> In that case, I got the previous errors (a MultiDocsAndPositionsEnum is
> returned). However, when I am indexing only one or two documents, the
> original DocsAndPositionsEnum is returned.

Got it, so you're directly consuming the flex API in your test.
Whenever the index has > 1 segment, you'll get a multi enum.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message