GitHub user laimis opened a pull request:

    https://github.com/apache/lucenenet/pull/59

    Merge logic fixes

    This PR contains fixes for segment merging logic for numeric and binary 
fields. Lucene.Net port was ignoring docsWithField parameter and as a result 
the merged segment had incorrect values in field infos.  
    
    SegmentMerger needs to pass docsWithField downstream so that the iterators 
could use it to determine which value to return for byte or numeric fields. 
Here is the Lucene version, 
https://github.com/apache/lucene-solr/blob/lucene_solr_4_8_0/lucene/core/src/java/org/apache/lucene/index/SegmentMerger.java#L159,
 you can see how docsWithField is passed to Merge* calls.
    
    Subsequently, re-introduced docsWithField usage in DocValuesConsumer. Here 
is the Lucene version for reference: 
https://github.com/apache/lucene-solr/blob/lucene_solr_4_8_0/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java.
 Note how it uses docsWithField to determine if to return null or a value.
    
    And then related to that BinaryDocValuesWriter also needs to use 
docsWithField list to return proper BytesRef values. Here is Lucene version for 
reference: 
https://github.com/apache/lucene-solr/blob/lucene_solr_4_8_0/lucene/core/src/java/org/apache/lucene/index/BinaryDocValuesWriter.java
    
    Also removed commented out ports of iterators. They were taking up space 
and making things more confusing.
    
    You can see the tests that fail without these changes in 
TestLucene42DocValuesFormat or TestLucene45DocValuesFormat, but there might be 
more. Example failing test from TC: 
http://teamcity.codebetter.com/viewLog.html?buildId=179687&tab=buildResultsDiv&buildTypeId=LuceneNet_Core#testNameId7364447424024347711

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/laimis/lucenenet merge_logic_fixes

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucenenet/pull/59.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #59
    
----
commit 4edb41be48fc2bd73c7ce9260ac7ec692b6861ed
Author: Laimonas Simutis <[email protected]>
Date:   2015-01-25T12:36:37Z

    match Lucene logic for merging values

commit 9776c7060c33b65c35b8b55af1d9b9177432cca4
Author: Laimonas Simutis <[email protected]>
Date:   2015-01-25T12:43:40Z

    merge with upstream/head, fix conflicts

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to