Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      I've been tinkering with a new Point-based RangeField for indexing numeric ranges that could be useful for a number of applications.
      For example, a single dimension represents a span along a single axis such as indexing calendar entries start and end time, 2d range could represent bounding boxes for geometric applications (e.g., supporting Point based geo shapes), 3d ranges bounding cubes for 3d geometric applications (collision detection, 3d geospatial), and 4d ranges for space time applications. I'm sure there's applicability for 5d+ ranges but a first incarnation should likely limit for performance.

      1. LUCENE-7381.patch
        45 kB
        Nicholas Knize
      2. LUCENE-7381.patch
        46 kB
        Nicholas Knize
      3. LUCENE-7381.patch
        46 kB
        Nicholas Knize
      4. LUCENE-7381.patch
        45 kB
        Nicholas Knize
      5. LUCENE-7381.patch
        43 kB
        Nicholas Knize
      6. LUCENE-7381.patch
        44 kB
        Nicholas Knize

        Activity

        Hide
        nknize Nicholas Knize added a comment -

        Initial patch for adding a new RangeField to sandbox that indexes ranges up to 4 dimensions representing:

        • 1d : single axis
        • 2d : bounding box
        • 3d : bounding cube
        • 4d : tesseract

        A new RangeFieldQuery class is also added that supports intersects, within, and contains query.

        Multiple range values per document is supported, as well as indexing and querying open ended ranges using Double.NEGATIVE_INFINITY and Double.POSITIVE_INFINITY.

        Random testing (inspired by the rigorous testing in BaseGeoPointTestCase) is also provided. It currently tests only 2 dimensions so support for random dimension testing still needs to be added.

        Nearly all of the Point based fields end with Point but I thought RangePoint and RangePointQuery might be a bit too confusing with PointRangeQuery. (naming is hard. the field type can always be refactored)

        Show
        nknize Nicholas Knize added a comment - Initial patch for adding a new RangeField to sandbox that indexes ranges up to 4 dimensions representing: 1d : single axis 2d : bounding box 3d : bounding cube 4d : tesseract A new RangeFieldQuery class is also added that supports intersects, within, and contains query. Multiple range values per document is supported, as well as indexing and querying open ended ranges using Double.NEGATIVE_INFINITY and Double.POSITIVE_INFINITY . Random testing (inspired by the rigorous testing in BaseGeoPointTestCase ) is also provided. It currently tests only 2 dimensions so support for random dimension testing still needs to be added. Nearly all of the Point based fields end with Point but I thought RangePoint and RangePointQuery might be a bit too confusing with PointRangeQuery . (naming is hard. the field type can always be refactored)
        Hide
        mikemccand Michael McCandless added a comment -

        Hmm do we really need to add the new enum value CELL_CONTAINS_QUERY to PointValues.Relation? This is dangerous: it means the numerous places that now switch on this enum value must handle it. Can we make a new enum used only by this new query instead?

        Also, its javadoc has a typo.

        Show
        mikemccand Michael McCandless added a comment - Hmm do we really need to add the new enum value CELL_CONTAINS_QUERY to PointValues.Relation ? This is dangerous: it means the numerous places that now switch on this enum value must handle it. Can we make a new enum used only by this new query instead? Also, its javadoc has a typo.
        Hide
        nknize Nicholas Knize added a comment -

        Thanks Michael McCandless!

        Can we make a new enum used only by this new query instead?

        Sure thing. Done. I also added random dimension testing to TestRangeFieldQueries.

        This should be ready.

        Show
        nknize Nicholas Knize added a comment - Thanks Michael McCandless ! Can we make a new enum used only by this new query instead? Sure thing. Done. I also added random dimension testing to TestRangeFieldQueries . This should be ready.
        Hide
        nknize Nicholas Knize added a comment -

        Updated patch:

        • Fixes a bug found in the RangeFieldQuery relation logic where equal ranges were not being returned with intersects, contains, and within queries (adds explicit test for equals in testBasics)
        • Simplifies RangeFieldQuery relation logic
        • Updates TestRangeFieldQueries to derive from a new BaseRangeFieldQueryTestCase class allowing for testing new RangeField types built on top of RangeField (e.g., date ranges, geo ranges)
        • Fixes the test verification step to explicitly check intersect, contain, and within while computing expected results. (The old patch was using the same buggy logic in the RangeFieldQuery class.)
        Show
        nknize Nicholas Knize added a comment - Updated patch: Fixes a bug found in the RangeFieldQuery relation logic where equal ranges were not being returned with intersects, contains, and within queries (adds explicit test for equals in testBasics ) Simplifies RangeFieldQuery relation logic Updates TestRangeFieldQueries to derive from a new BaseRangeFieldQueryTestCase class allowing for testing new RangeField types built on top of RangeField (e.g., date ranges, geo ranges) Fixes the test verification step to explicitly check intersect, contain, and within while computing expected results. (The old patch was using the same buggy logic in the RangeFieldQuery class.)
        Hide
        jpountz Adrien Grand added a comment - - edited

        This is an exciting feature! I looked at the patch and have some questions:

        • Should the field be called something like DoubleRange rather than RangeField so that we still have namespace to have similar fields for other data types? I think this would also be more consistent with the names of other fields like StringField or DoublePoint?
        • The reuse of fieldsData in setRangeValues worries me a bit, is it safe? Other fields do not seem to do that?
        • QueryType does not need to be public?
        • Why do you replace infinities with +/-MAX_VALUE?
        Show
        jpountz Adrien Grand added a comment - - edited This is an exciting feature! I looked at the patch and have some questions: Should the field be called something like DoubleRange rather than RangeField so that we still have namespace to have similar fields for other data types? I think this would also be more consistent with the names of other fields like StringField or DoublePoint? The reuse of fieldsData in setRangeValues worries me a bit, is it safe? Other fields do not seem to do that? QueryType does not need to be public? Why do you replace infinities with +/-MAX_VALUE?
        Hide
        dsmiley David Smiley added a comment -

        Very cool Nick!

        Show
        dsmiley David Smiley added a comment - Very cool Nick!
        Hide
        nknize Nicholas Knize added a comment -

        Thanks Adrien Grand!

        Should the field be called something like DoubleRange

        +1. I was on the fence about this but I think its the right way to go. Not only does it make it sense for consistency but it reduces index size for ints and floats.

        The reuse of fieldsData in setRangeValues worries me a bit, is it safe?

        We did this in LatLonPoint. I don't think its any less safe than creating a new BytesRef (but more efficient?) Maybe Michael McCandless has a better answer?

        QueryType does not need to be public?

        +1

        Why do you replace infinities with +/-MAX_VALUE?

        Good catch, I think that was in there from unrelated debugging funzies.

        Updated patch is attached.

        Show
        nknize Nicholas Knize added a comment - Thanks Adrien Grand ! Should the field be called something like DoubleRange +1. I was on the fence about this but I think its the right way to go. Not only does it make it sense for consistency but it reduces index size for ints and floats. The reuse of fieldsData in setRangeValues worries me a bit, is it safe? We did this in LatLonPoint . I don't think its any less safe than creating a new BytesRef (but more efficient?) Maybe Michael McCandless has a better answer? QueryType does not need to be public? +1 Why do you replace infinities with +/-MAX_VALUE? Good catch, I think that was in there from unrelated debugging funzies. Updated patch is attached.
        Hide
        nknize Nicholas Knize added a comment -

        Minor clean up of some exception messages and javadocs.

        Show
        nknize Nicholas Knize added a comment - Minor clean up of some exception messages and javadocs.
        Hide
        jpountz Adrien Grand added a comment -

        The bounds checks for getMin and getMax apply to type.pointDimensionCount() but it really should be type.pointDimensionCount()/2?
        I think I would find it a bit easier to read if each query type had a different RangeFieldComparator impl, the fact that all cases are handled in a single method makes it a bit hard to follow for me.

        Show
        jpountz Adrien Grand added a comment - The bounds checks for getMin and getMax apply to type.pointDimensionCount() but it really should be type.pointDimensionCount()/2 ? I think I would find it a bit easier to read if each query type had a different RangeFieldComparator impl, the fact that all cases are handled in a single method makes it a bit hard to follow for me.
        Hide
        nknize Nicholas Knize added a comment -

        Instead of having to create a new impl for each query I just simplified the RangeFieldComparator. Now its only responsibility is to provide the range relation logic. I then moved the relation handling up into the IntersectsVisitor. I think this is better and more properly organized and should be easier to follow.

        Show
        nknize Nicholas Knize added a comment - Instead of having to create a new impl for each query I just simplified the RangeFieldComparator . Now its only responsibility is to provide the range relation logic. I then moved the relation handling up into the IntersectsVisitor. I think this is better and more properly organized and should be easier to follow.
        Hide
        nknize Nicholas Knize added a comment -

        Attached wrong patch. Proper one now attached.

        Show
        nknize Nicholas Knize added a comment - Attached wrong patch. Proper one now attached.
        Hide
        jpountz Adrien Grand added a comment -

        +1

        I suspect we can make things faster by reorganizing how the visitor computes the relation between the cell and the range but this is sandbox so maybe we should get this in and iterate from there?

        Show
        jpountz Adrien Grand added a comment - +1 I suspect we can make things faster by reorganizing how the visitor computes the relation between the cell and the range but this is sandbox so maybe we should get this in and iterate from there?
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit f5964ec6e45adc8fc7644bbe60d9e5966bf11ab7 in lucene-solr's branch refs/heads/master from Nicholas Knize
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=f5964ec ]

        LUCENE-7381: add point based DoubleRangeField and RangeFieldQuery for indexing and querying on Ranges up to 4 dimensions

        Show
        jira-bot ASF subversion and git services added a comment - Commit f5964ec6e45adc8fc7644bbe60d9e5966bf11ab7 in lucene-solr's branch refs/heads/master from Nicholas Knize [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=f5964ec ] LUCENE-7381 : add point based DoubleRangeField and RangeFieldQuery for indexing and querying on Ranges up to 4 dimensions
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 7dfcfcc71851abe114d5db716bc5d099b540e3fe in lucene-solr's branch refs/heads/branch_6x from Nicholas Knize
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7dfcfcc ]

        LUCENE-7381: add point based DoubleRangeField and RangeFieldQuery for indexing and querying on Ranges up to 4 dimensions

        Show
        jira-bot ASF subversion and git services added a comment - Commit 7dfcfcc71851abe114d5db716bc5d099b540e3fe in lucene-solr's branch refs/heads/branch_6x from Nicholas Knize [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7dfcfcc ] LUCENE-7381 : add point based DoubleRangeField and RangeFieldQuery for indexing and querying on Ranges up to 4 dimensions
        Hide
        nknize Nicholas Knize added a comment -

        +1 to iterate in sandbox. I'll also add IntRangeField, DoubleRangeField, and LongRangeField in a separate issue. And GeoBBoxField also in another issue.

        Show
        nknize Nicholas Knize added a comment - +1 to iterate in sandbox. I'll also add IntRangeField , DoubleRangeField , and LongRangeField in a separate issue. And GeoBBoxField also in another issue.
        Hide
        steve_rowe Steve Rowe added a comment - - edited

        Couple reproducing nightly test failures on branch_6x, from https://builds.apache.org/job/Lucene-Solr-NightlyTests-6.x/125/:

           [junit4] Suite: org.apache.lucene.search.TestDoubleRangeFieldQueries
           [junit4]   2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene directory.
           [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testMultiValued -Dtests.seed=AE24BFDDECD216AC -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/x1/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=hu -Dtests.timezone=Europe/San_Marino -Dtests.asserts=true -Dtests.file.encoding=US-ASCII
           [junit4] FAILURE 4.20s J0 | TestDoubleRangeFieldQueries.testMultiValued <<<
           [junit4]    > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more):
           [junit4]    > FAIL: id=204 should not match but did
           [junit4]    >  queryBox=Box(Infinity TO Infinity)
           [junit4]    >  box=Box(Infinity TO Infinity)
           [junit4]    >  queryType=CONTAINS
           [junit4]    >  deleted?=false
           [junit4]    > 	at __randomizedtesting.SeedInfo.seed([AE24BFDDECD216AC:7A04DBEF221056E4]:0)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testMultiValued(BaseRangeFieldQueryTestCase.java:73)
           [junit4]    > 	at java.lang.Thread.run(Thread.java:745)
           [junit4]   2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene directory.
           [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testRandomBig -Dtests.seed=AE24BFDDECD216AC -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/x1/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=hu -Dtests.timezone=Europe/San_Marino -Dtests.asserts=true -Dtests.file.encoding=US-ASCII
           [junit4] FAILURE 35.1s J0 | TestDoubleRangeFieldQueries.testRandomBig <<<
           [junit4]    > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more):
           [junit4]    > FAIL: id=49 should not match but did
           [junit4]    >  queryBox=Box(Infinity TO Infinity)
           [junit4]    >  box=Box(Infinity TO Infinity)
           [junit4]    >  queryType=CONTAINS
           [junit4]    >  deleted?=false
           [junit4]    > 	at __randomizedtesting.SeedInfo.seed([AE24BFDDECD216AC:2973C2527D8B6A2C]:0)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154)
           [junit4]    > 	at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testRandomBig(BaseRangeFieldQueryTestCase.java:69)
           [junit4]    > 	at java.lang.Thread.run(Thread.java:745)
           [junit4]   2> NOTE: leaving temporary files on disk at: /x1/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-6.x/lucene/build/sandbox/test/J0/temp/lucene.search.TestDoubleRangeFieldQueries_AE24BFDDECD216AC-001
           [junit4]   2> NOTE: test params are: codec=Asserting(Lucene62): {id=PostingsFormat(name=Memory doPackFST= false)}, docValues:{id=DocValuesFormat(name=Memory)}, maxPointsInLeafNode=1844, maxMBSortInHeap=6.78445457997637, sim=ClassicSimilarity, locale=hu, timezone=Europe/San_Marino
           [junit4]   2> NOTE: Linux 3.13.0-85-generic amd64/Oracle Corporation 1.8.0_74 (64-bit)/cpus=4,threads=1,free=179129064,total=341311488
           [junit4]   2> NOTE: All tests run in this JVM: [FuzzyLikeThisQueryTest, TestDocValuesTermsQuery, TestTermAutomatonQuery, TestLatLonPoint, TestBigIntegerPoint, TestDoubleRangeField, TestHalfFloatPoint, TestInetAddressPoint, TestLatLonDocValuesField, TestPayloadSpanUtil, TestDoubleRangeFieldQueries]
           [junit4] Completed [18/20 (1!)] on J0 in 42.60s, 5 tests, 2 failures <<< FAILURES!
        
        Show
        steve_rowe Steve Rowe added a comment - - edited Couple reproducing nightly test failures on branch_6x, from https://builds.apache.org/job/Lucene-Solr-NightlyTests-6.x/125/ : [junit4] Suite: org.apache.lucene.search.TestDoubleRangeFieldQueries [junit4] 2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene directory. [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testMultiValued -Dtests.seed=AE24BFDDECD216AC -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/x1/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=hu -Dtests.timezone=Europe/San_Marino -Dtests.asserts=true -Dtests.file.encoding=US-ASCII [junit4] FAILURE 4.20s J0 | TestDoubleRangeFieldQueries.testMultiValued <<< [junit4] > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more): [junit4] > FAIL: id=204 should not match but did [junit4] > queryBox=Box(Infinity TO Infinity) [junit4] > box=Box(Infinity TO Infinity) [junit4] > queryType=CONTAINS [junit4] > deleted?=false [junit4] > at __randomizedtesting.SeedInfo.seed([AE24BFDDECD216AC:7A04DBEF221056E4]:0) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testMultiValued(BaseRangeFieldQueryTestCase.java:73) [junit4] > at java.lang.Thread.run(Thread.java:745) [junit4] 2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene directory. [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testRandomBig -Dtests.seed=AE24BFDDECD216AC -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/x1/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=hu -Dtests.timezone=Europe/San_Marino -Dtests.asserts=true -Dtests.file.encoding=US-ASCII [junit4] FAILURE 35.1s J0 | TestDoubleRangeFieldQueries.testRandomBig <<< [junit4] > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more): [junit4] > FAIL: id=49 should not match but did [junit4] > queryBox=Box(Infinity TO Infinity) [junit4] > box=Box(Infinity TO Infinity) [junit4] > queryType=CONTAINS [junit4] > deleted?=false [junit4] > at __randomizedtesting.SeedInfo.seed([AE24BFDDECD216AC:2973C2527D8B6A2C]:0) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testRandomBig(BaseRangeFieldQueryTestCase.java:69) [junit4] > at java.lang.Thread.run(Thread.java:745) [junit4] 2> NOTE: leaving temporary files on disk at: /x1/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-6.x/lucene/build/sandbox/test/J0/temp/lucene.search.TestDoubleRangeFieldQueries_AE24BFDDECD216AC-001 [junit4] 2> NOTE: test params are: codec=Asserting(Lucene62): {id=PostingsFormat(name=Memory doPackFST= false)}, docValues:{id=DocValuesFormat(name=Memory)}, maxPointsInLeafNode=1844, maxMBSortInHeap=6.78445457997637, sim=ClassicSimilarity, locale=hu, timezone=Europe/San_Marino [junit4] 2> NOTE: Linux 3.13.0-85-generic amd64/Oracle Corporation 1.8.0_74 (64-bit)/cpus=4,threads=1,free=179129064,total=341311488 [junit4] 2> NOTE: All tests run in this JVM: [FuzzyLikeThisQueryTest, TestDocValuesTermsQuery, TestTermAutomatonQuery, TestLatLonPoint, TestBigIntegerPoint, TestDoubleRangeField, TestHalfFloatPoint, TestInetAddressPoint, TestLatLonDocValuesField, TestPayloadSpanUtil, TestDoubleRangeFieldQueries] [junit4] Completed [18/20 (1!)] on J0 in 42.60s, 5 tests, 2 failures <<< FAILURES!
        Hide
        steve_rowe Steve Rowe added a comment -

        Another reproducing nightly branch_6x failing test seed found by my Jenkins:

           [junit4] Suite: org.apache.lucene.search.TestDoubleRangeFieldQueries
           [junit4]   2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene direct
        ory.
           [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testMultiValued -Dtests.seed=49E2D2BA84C4DB27 -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/home/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=de-CH -Dtests.timezone=America/Costa_Rica -Dtests.asserts=true -Dtests.file.encoding=UTF-8
           [junit4] FAILURE 5.22s J5 | TestDoubleRangeFieldQueries.testMultiValued <<<
           [junit4]    > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more):
           [junit4]    > FAIL: id=18102 should not match but did
           [junit4]    >  queryBox=Box(Infinity TO Infinity)
           [junit4]    >  box=Box(Infinity TO Infinity)
           [junit4]    >  queryType=CONTAINS
           [junit4]    >  deleted?=false
           [junit4]    >        at __randomizedtesting.SeedInfo.seed([49E2D2BA84C4DB27:9DC2B6884A069B6F]:0)
           [junit4]    >        at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278)
           [junit4]    >        at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154)
           [junit4]    >        at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testMultiValued(BaseRangeFieldQueryTestCase.java:73)
           [junit4]    >        at java.lang.Thread.run(Thread.java:745)
           [junit4]   2> NOTE: leaving temporary files on disk at: /var/lib/jenkins/jobs/Lucene-Solr-Nightly-6.x/workspace/lucene/build/sandbox/test/J5/temp/lucene.search.TestDoubleRangeFieldQueries_49E2D2BA84C4DB27-001
           [junit4]   2> NOTE: test params are: codec=Asserting(Lucene62): {id=PostingsFormat(name=LuceneFixedGap)}, docValues:{id=DocValuesFormat(name=Asserting)}, maxPointsInLeafNode=735, maxMBSortInHeap=7.540860061709994, sim=ClassicSimilarity, locale=de-CH, timezone=America/Costa_Rica
           [junit4]   2> NOTE: Linux 4.1.0-custom2-amd64 amd64/Oracle Corporation 1.8.0_77 (64-bit)/cpus=16,threads=1,free=210135672,total=520093696
           [junit4]   2> NOTE: All tests run in this JVM: [TestLatLonDocValuesField, FuzzyLikeThisQueryTest, TestSlowFuzzyQuery, TestDocValuesRangeQuery, TestDoubleRangeFieldQueries]
           [junit4] Completed [19/20 (1!)] on J5 in 61.33s, 5 tests, 1 failure <<< FAILURES!
        
        Show
        steve_rowe Steve Rowe added a comment - Another reproducing nightly branch_6x failing test seed found by my Jenkins: [junit4] Suite: org.apache.lucene.search.TestDoubleRangeFieldQueries [junit4] 2> NOTE: download the large Jenkins line-docs file by running 'ant get-jenkins-line-docs' in the lucene direct ory. [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestDoubleRangeFieldQueries -Dtests.method=testMultiValued -Dtests.seed=49E2D2BA84C4DB27 -Dtests.multiplier=2 -Dtests.nightly=true -Dtests.slow=true -Dtests.linedocsfile=/home/jenkins/lucene-data/enwiki.random.lines.txt -Dtests.locale=de-CH -Dtests.timezone=America/Costa_Rica -Dtests.asserts=true -Dtests.file.encoding=UTF-8 [junit4] FAILURE 5.22s J5 | TestDoubleRangeFieldQueries.testMultiValued <<< [junit4] > Throwable #1: java.lang.AssertionError: wrong hit (first of possibly more): [junit4] > FAIL: id=18102 should not match but did [junit4] > queryBox=Box(Infinity TO Infinity) [junit4] > box=Box(Infinity TO Infinity) [junit4] > queryType=CONTAINS [junit4] > deleted?=false [junit4] > at __randomizedtesting.SeedInfo.seed([49E2D2BA84C4DB27:9DC2B6884A069B6F]:0) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.verify(BaseRangeFieldQueryTestCase.java:278) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.doTestRandom(BaseRangeFieldQueryTestCase.java:154) [junit4] > at org.apache.lucene.search.BaseRangeFieldQueryTestCase.testMultiValued(BaseRangeFieldQueryTestCase.java:73) [junit4] > at java.lang.Thread.run(Thread.java:745) [junit4] 2> NOTE: leaving temporary files on disk at: /var/lib/jenkins/jobs/Lucene-Solr-Nightly-6.x/workspace/lucene/build/sandbox/test/J5/temp/lucene.search.TestDoubleRangeFieldQueries_49E2D2BA84C4DB27-001 [junit4] 2> NOTE: test params are: codec=Asserting(Lucene62): {id=PostingsFormat(name=LuceneFixedGap)}, docValues:{id=DocValuesFormat(name=Asserting)}, maxPointsInLeafNode=735, maxMBSortInHeap=7.540860061709994, sim=ClassicSimilarity, locale=de-CH, timezone=America/Costa_Rica [junit4] 2> NOTE: Linux 4.1.0-custom2-amd64 amd64/Oracle Corporation 1.8.0_77 (64-bit)/cpus=16,threads=1,free=210135672,total=520093696 [junit4] 2> NOTE: All tests run in this JVM: [TestLatLonDocValuesField, FuzzyLikeThisQueryTest, TestSlowFuzzyQuery, TestDocValuesRangeQuery, TestDoubleRangeFieldQueries] [junit4] Completed [19/20 (1!)] on J5 in 61.33s, 5 tests, 1 failure <<< FAILURES!
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 7f1db8a047818da337b27fe9dce0824cb5a02b96 in lucene-solr's branch refs/heads/master from Nicholas Knize
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7f1db8a ]

        LUCENE-7381: Fix equals relation in RangeFieldQuery. Fix relation logic in BaseRangeFieldQueryTestCase.

        Show
        jira-bot ASF subversion and git services added a comment - Commit 7f1db8a047818da337b27fe9dce0824cb5a02b96 in lucene-solr's branch refs/heads/master from Nicholas Knize [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7f1db8a ] LUCENE-7381 : Fix equals relation in RangeFieldQuery. Fix relation logic in BaseRangeFieldQueryTestCase.
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 1a94c25a04b1de80f8ae6e9c35f60ff97e9ec190 in lucene-solr's branch refs/heads/branch_6x from Nicholas Knize
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=1a94c25 ]

        LUCENE-7381: Fix equals relation in RangeFieldQuery. Fix relation logic in BaseRangeFieldQueryTestCase.

        Show
        jira-bot ASF subversion and git services added a comment - Commit 1a94c25a04b1de80f8ae6e9c35f60ff97e9ec190 in lucene-solr's branch refs/heads/branch_6x from Nicholas Knize [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=1a94c25 ] LUCENE-7381 : Fix equals relation in RangeFieldQuery. Fix relation logic in BaseRangeFieldQueryTestCase.
        Hide
        nknize Nicholas Knize added a comment -

        Thanks Steve Rowe! I saw a nightly failure for the same thing. I pushed a fix.

        Show
        nknize Nicholas Knize added a comment - Thanks Steve Rowe ! I saw a nightly failure for the same thing. I pushed a fix.

          People

          • Assignee:
            Unassigned
            Reporter:
            nknize Nicholas Knize
          • Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development