[ 
https://issues.apache.org/jira/browse/LUCENE-3622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Muir updated LUCENE-3622:
--------------------------------

    Attachment: LUCENE-3622.patch

There is more to be done here, but I'd like to merge the work so far to trunk 
to make maintenance easier.

the following classes are renamed:
* IndexDocValues -> DocValues
* ValueType -> DocValues.Type
* PerDocFieldValues -> DocValue
* function's DocValues -> FunctionValues

DocValues classes are no longer in o.a.l.index.values, instead the 'general' 
classes (only 4 or so) are in o.a.l.index.

The lucene40-implementation dependent classes are now underneath lucene40 codec.

PerDocValues is only held by the core and not exposed to IndexReader. Its 
renamed to PerDocProducer (consistent with PerDocConsumer).

IndexReader only has DocValues docValues(String field) as its api. 
MultiPerDocValues is removed as its not exposed and there is only 
MultiDocValues. 

SortedSource doesn't require that you exposed a packed-ints reader, you might 
not implement things that way. Instead it has a hasPacked* method so that 
sorting can optimize in case you do have it.

FieldInfo no longer has a transactional API for setting term vectors or 
docvalues information: the problem was that we could end out with extra files 
if there was an exception and only that document needed them. Instead of a 
commit/revert thing it just sets them after it successfully indexes.

Type promotion is moved from the codec implementation to SegmentMerger. Because 
of this, SegmentMerger no longer lies to other codec components about the 
fieldinfos, with DocValues changing them behind the scenes, instead it computes 
fieldinfos up front, writes them to disk, and codecs see "the real fieldinfos". 
This also means like merging of other lucene type information, our 'type 
promotion' across incompatible docvalues types is well-defined instead of being 
implementation-dependent.

Some unused/unnecessary/dead methods/code in the abstract apis are removed. 

CheckIndex has lots more checking for docvalues (and norms too).


                
> separate IndexDocValues interface from implementation
> -----------------------------------------------------
>
>                 Key: LUCENE-3622
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3622
>             Project: Lucene - Java
>          Issue Type: Task
>            Reporter: Robert Muir
>         Attachments: LUCENE-3622.patch, LUCENE-3622.patch
>
>
> Currently the o.a.l.index.values contains both the abstract apis and 
> Lucene40's current implementation.
> I think we should move the implementation underneath Lucene40Codec, leaving 
> only the abstract apis.
> For example, simpletext might have a different implementation, and we might 
> make a int8 implementation
> underneath preflexcodec to support norms.

--
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-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to