Solr
  1. Solr
  2. SOLR-2669

SchemaField.calcProps has some backwards validation

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.4, 4.0-ALPHA
    • Component/s: None
    • Labels:
      None

      Description

      LUCENE-2048 drew my attention to SchemaField.calProps and made me realize that some of the validation checks in this method are backwards

      The check rmuir added in LUCENE-2048 seems to just bea straight up mistake...

      • omitTermFreqAndPosition=false, omitPositions=true ... ERROR
      • omitTermFreqAndPosition=true, omitPositions=false ... NO error but non-sense

      The following however are long standing oddities...

      • indexed=false omitNorms=true ... ERROR
      • indexed=false omitTermFreqAndPositions=true ... ERROR
      • indexed=false omitNorms=false ... NO error but non-sense
      • indexed=false omitTermFreqAndPositions=false ... NO error but non-sense
      • (omitPositions was added to the "INDEX" check and has similar problems)

      I asked yonik about this in IRC, and he speculates that the reason this test started out that way is that it doesn't make any sense to ask for some index specific stuff to be omited if you have already said you don't want indexing at all.

      my counter point was that it doesn't hurt to ask for some indexing metadata to be omited, but it certainly doesn't make sense to explicitly ask for any of that metadata to be left in if you asid you don't want any indexing.

      To draw an analogy: "Please omit the dressing from my salad, and please don't bring me a salad" is a redundant request, but it doesn't hurt anything. "Please make sure there is dressing on my salad, and please don't bring me a salad" makes no sense at all – if you don't want the salad, then why are asking for dressing on it?

        Activity

        Hide
        Hoss Man added a comment -

        patch that reverses these validation checks, with test config additions demonstrating the combinations that should work, and BadIndexSchemaTest additions that demonstrate the combinations that should fail.

        Show
        Hoss Man added a comment - patch that reverses these validation checks, with test config additions demonstrating the combinations that should work, and BadIndexSchemaTest additions that demonstrate the combinations that should fail.
        Hide
        Robert Muir added a comment -

        To draw an analogy: "Please omit the dressing from my salad, and please don't bring me a salad" is a redundant request, but it doesn't hurt anything. "Please make sure there is dressing on my salad, and please don't bring me a salad" makes no sense at all – if you don't want the salad, then why are asking for dressing on it?

        I think this logic makes sense... the whole intention for the positions checks was to throw an error in the nonsense case (I tested, doesn't actually work at all in trunk right now)

        patch looks good, this stuff needed tests.

        Show
        Robert Muir added a comment - To draw an analogy: "Please omit the dressing from my salad, and please don't bring me a salad" is a redundant request, but it doesn't hurt anything. "Please make sure there is dressing on my salad, and please don't bring me a salad" makes no sense at all – if you don't want the salad, then why are asking for dressing on it? I think this logic makes sense... the whole intention for the positions checks was to throw an error in the nonsense case (I tested, doesn't actually work at all in trunk right now) patch looks good, this stuff needed tests.
        Hide
        Hoss Man added a comment -

        Thanks for the review rmuir

        Committed revision 1150478. - trunk

        Still working on backporting to 3x, i thought it was going to be straight forward but BadIndexSchemaTest is vastly diff on that branch because of SOLR-1846

        (Poking around with this also made me realize that none of the validation Solr does accounts for inconsistencies between the fieldtype and the field, so i've spun that off into SOLR-2674)

        Show
        Hoss Man added a comment - Thanks for the review rmuir Committed revision 1150478. - trunk Still working on backporting to 3x, i thought it was going to be straight forward but BadIndexSchemaTest is vastly diff on that branch because of SOLR-1846 (Poking around with this also made me realize that none of the validation Solr does accounts for inconsistencies between the fieldtype and the field, so i've spun that off into SOLR-2674 )
        Hide
        Hoss Man added a comment -

        Committed revision 1150510. - 3x

        Show
        Hoss Man added a comment - Committed revision 1150510. - 3x
        Hide
        Robert Muir added a comment -

        bulk close for 3.4

        Show
        Robert Muir added a comment - bulk close for 3.4

          People

          • Assignee:
            Hoss Man
            Reporter:
            Hoss Man
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development