lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (LUCENE-4315) Minor fixes for Fields abstract class, TermVectorsWriter
Date Tue, 21 Aug 2012 06:24:38 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-4315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438479#comment-13438479
] 

Uwe Schindler edited comment on LUCENE-4315 at 8/21/12 5:24 PM:
----------------------------------------------------------------

Hi Mike, I already proposed that and opened this issue to discuss this. As a first step to
"correct" the current status is the attached patch. But I also agree to make it mandatory.

The following Fields implementation would then need to manually iterate and (maybe) store
the value in a volatile as cache:
- MultiFields (returns -1)
- FieldFilterAtomicReader (returns -1 now, but previously also iterated - removed that code
because it was broken)
                
      was (Author: thetaphi):
    Hi Mike, I already proposed that and opened this issue to discuss this. As a first step
to "correct" the current status is the attached patch. But I also agree to make it mandatory.

The following Fields implementation would then need to manually iterate and (maybe store the
value in a volatile as cache):
- MultiFields (returns -1)
- FieldFilterAtomicReader (returns -1 now, but previously also iterated - removed that code
because it was broken)
                  
> Minor fixes for Fields abstract class, TermVectorsWriter
> --------------------------------------------------------
>
>                 Key: LUCENE-4315
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4315
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 4.0-BETA
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>             Fix For: 5.0, 4.0
>
>         Attachments: LUCENE-4315.patch, LUCENE-4315.patch
>
>
> The Fields abstract class is a little bit inconsistent. It does not allow iterator()
to throw IOException, but size() is allowed to do this. This is inconsistent, as looping through
iterator always returns size without IOException.
> Also Fields.size() allows -1 as return value, but almost all implementation (only MultiFields
and FieldFilteredAtomicReader may return -1) actually implement it in a very cheap way. This
is simple statistics, we should rethink this:
> - TermVectorsWriter's basic merging (without optimization requires this information,
also Terms.size())
> - We can default Fields.size() to count iterator, if not explicitely implemented. This
method is called only by "IndexReader introspection) and TermVectors merging.
> We should maybe enforce size() for Fields to return a value >=0 (Preflex also knows
its size!), and if the impl class does not have it (MultiFields, FieldFilteredAtomicReader,
loop by supplying default impl).
> The current patch still allows -1 as return value and removes IOException from the signature.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message