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

Michael McCandless resolved LUCENE-6187.
----------------------------------------
       Resolution: Fixed
    Fix Version/s: master (7.0)

This was done with the switch to an iterator API for doc values for 7.0.

> explore symmetic docvalues pull API
> -----------------------------------
>
>                 Key: LUCENE-6187
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6187
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Robert Muir
>             Fix For: master (7.0)
>
>
> Currently the DocValuesConsumer and NormsConsumer have a streaming pull API 
> based on Iterable.
> {code}
> addNumericField(FieldInfo field, Iterable<Number> values)
> ...
> addSortedSetField(FieldInfo field, Iterable<BytesRef> values, 
> Iterable<Number> docToOrdCount, Iterable<Number> ords)
> {code}
> I think this was a good initial approach, but it has a few downsides:
> * for more complex structures (sorted/sortedset/sortednumeric) the codec must 
> awkwardly handle multiple streams and sometimes inefficiently do extra passes.
> * thousands of lines of XXXDocValues <-> Iterable bridge handling in merge 
> code (when MultiDocValues already knows how to merge multiple subs)
> * missing values represented as null is awkward, complicated and a little 
> trappy on the consumer.
> I think we should explore changing it to look more like postings:
> {code}
> addNumericField(FieldInfo field, NumericDocValues values, Bits docsWithField)
> addSortedSetField(FieldInfo field, SortedSetDocValues values, Bits 
> docsWithField)
> {code}
> I don't think it would be hard on the implementation: e.g. when I look at 
> IndexWriter it seems like these would even be simpler code than the current 
> iterators (e.g. for numerics its already got a NumericDocValues and a Bits 
> docsWithField, the current iterable stuff is just "extra" bridge code like 
> merging).
> My main concern is if it makes things easier on the codec impls or not. I 
> think we have to try it out to see. We could test it out on trunk with just 
> NormsConsumer.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to