[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16070518#comment-16070518 ] ASF subversion and git services commented on SOLR-10864: Commit f3c851a015e5d8c775f0fb28ffbd8f5725f2f11b in lucene-solr's branch refs/heads/master from Chris Hostetter [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=f3c851a ] SOLR-10864: Fixup: Restore the DV vs trie vs points intent of TestRandomDVFaceting > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16069450#comment-16069450 ] Tomás Fernández Löbbe commented on SOLR-10864: -- bq. I'm not sure what you mean by "consistency with other schemas"... and there's nothing to stop people from adding new tests that use this schema as well I meant adding fields that are explicitly trie fields, something like "tint" or "int_t" and modify the test to use those instead of reverting what you did. bq. force non-points and non-dv via sys prop overrides +1 That makes sense and it's simpler than what I was proposing. > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16069442#comment-16069442 ] Hoss Man commented on SOLR-10864: - bq. ... I think these changes left TestRandomDVFaceting in a bad state. ... Hmm, ok -- yeah, i see what you mean. bq. For consistency with other schemas, maybe we want schema-docValuesFaceting.xml to have specific trie fields and use those in this test. I'm not sure what you mean by "consistency with other schemas", but in general my concern is that {{schema-docValuesFaceting.xml}} is already used by (one) other tests -- and there's nothing to stop people from adding new tests that use this schema as well -- so I think it would make more sense to change TestRandomDVFaceting.beforeTests to _force_ non-points and non-dv via sys prop overrides, so that it can do the comparisons as originally intended (and compare the trie to points you added in 57934ba4) make sense? > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16069403#comment-16069403 ] Tomás Fernández Löbbe commented on SOLR-10864: -- Sorry for the late response, I've been taking some time off. One minor comment, I think these changes left {{TestRandomDVFaceting}} in a bad state. It was originally intended to compare faceting between dv=true and dv=false. It would also compare with point fields most of the times (see https://github.com/apache/lucene-solr/blob/master/solr/core/src/test/org/apache/solr/TestRandomDVFaceting.java#L250-L258 ). After this change, half the time (when {{randomizeNumericTypesProperties}} decides to use PointFields) the test just compares dv=true three times. For consistency with other schemas, maybe we want {{schema-docValuesFaceting.xml}} to have specific trie fields and use those in this test. > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16061238#comment-16061238 ] ASF subversion and git services commented on SOLR-10864: Commit c20d3aff9474be338ccf9fdb138f467435d06f09 in lucene-solr's branch refs/heads/master from Chris Hostetter [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=c20d3af ] SOLR-10177: replace adhoc points randomization with new standard introduced by SOLR-10864 > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16060048#comment-16060048 ] ASF subversion and git services commented on SOLR-10864: Commit ae01113472378093462e88b90e6e07a2cd863f8f in lucene-solr's branch refs/heads/master from Chris Hostetter [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=ae01113 ] remove SuppressPointFields from TestCloudPivotFacet now that SOLR-10864 is in place, there's no reason this test can't use points+docValues > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16059645#comment-16059645 ] ASF subversion and git services commented on SOLR-10864: Commit 38f29b2674c2465057d522e5862b8a32b1637a71 in lucene-solr's branch refs/heads/master from Chris Hostetter [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=38f29b2 ] SOLR-10864: Simplified how Trie vs Points based numerics are randomized by SolrTestCaseJ4 Adds a static option to PointsField to ignore 'precisionStep' attribute. This change also begins to attempt to randomize 'docValues' on numeric field types unless tests explicity enable/disable them > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch, > SOLR-10864.patch, SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16055918#comment-16055918 ] Steve Rowe commented on SOLR-10864: --- bq. ...but actually in hindsight, I think your idea is just plain objectively better, because it would keep the usage simpler... (almost) every numeric field type should have docValues="${solr.tests.numeric.dv}" Sound Good? +1 bq. one other question I had was about changing the semantics of the current solr.tests.preferPointFields users can set ... it can currently only be used to "prefer points" for tests that don't have @SuppressPointFields, but I think it would be better to change that to solr.tests.use.numeric.points any objections? +1 > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored so we can simplify points randomization in our schemas > > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch, SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16052991#comment-16052991 ] Steve Rowe commented on SOLR-10864: --- bq. Honestly: I'm a little disappointed at how much i had to leverage {{docValues="$\{solr.tests.numeric.points\}"}} ... i was hoping that only a handful of facet/stats related schemas would need that, but so many tests relay on the same schema files I worry we''ll essentially have to put it every where, and we'll wind up under testing points fields with {{docValues="false"}} How about introducing a new (independently) randomized sysprop usable as {{docValues="$\{solr.tests.numeric.docvalues\}"}}? Tests that need it to be one way or the other can set it in a {{@BeforeClass}}-annotated static method. bq. Tomás Fernández Löbbe & Steve Rowe: You guys have spent a lot of time working on/with points randomized tests – what do you think? Is this approach "less bad/cubersome/anoying" then the current way we randomize in points? +1, I like how it'll be standardized, simplified (fieldtypes only instead of fields; and fewer fields) and (more) comprehensive than the current setup. > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > Attachments: SOLR-10864.patch > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16051100#comment-16051100 ] Hoss Man commented on SOLR-10864: - bq. Or do you have other plans? I did not have any specific plans -- I'd kind of forgotten about needing to hack around that on the jira/SOLR-10807 branch. Thanks for reminding me. My 2 strawman suggestions would be: # Any tests where it's a problem is a test where we should consider *not* using randomized class name in the fieldType, and instead test the diff permutations explicitly. # in addition to the randomized classname sysvar used in schema files, we can have a randomized boolean var(s) indicating if the choosen classes are points based, and fields/fieldTypes where "trie w/fieldcache" vs "points w/docvalues" matter can use that var in their {{docValues="$var"}} declaration. In practice, we might want to mix both? Use #2 in general purpose test schemas, and #1 in purpose build test schemas like what TestPoints or TestTrie use? Either way: * i'm guessing at least 80% of test won't be affected at all * we should have a solution that doesn't depend on wether we do SOLR-10808, because even if that happens first, we're still going to want to be able to have schemas where TrieFields have (effective/explicit) {{docValues="false"}} to continue testing that we don't break FieldCache usage for those fieldTypes in 7.x point releases thoughts? > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16050864#comment-16050864 ] Tomás Fernández Löbbe commented on SOLR-10864: -- +1 One more issue is with the fact that PointFields don't use FieldCache (mv only since SOLR-10472), and many tests may be using those fields for faceting/stats, etc. Maybe no longer an issue if we do SOLR-10808 first (and update schema version)? Or do you have other plans? > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16049376#comment-16049376 ] Hoss Man commented on SOLR-10864: - thanks steve. I should have pointed out before: you can see an aproximation of what this will look like in the branch i've been working on for the parent issue: jira/SOLR-10807 In particular this commit gives the flavor of teh bulk of the change... https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=c76a79b Unless their are any objections, i'll assume this choice is ok, and continue moving forwrad with this approach in branch jira/SOLR-10807 (once some other related bugs are fixed on maser) and resolve this issue. > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16048430#comment-16048430 ] Steve Rowe commented on SOLR-10864: --- +1, the idea seems sound to me. > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org
[jira] [Commented] (SOLR-10864) Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored
[ https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16045181#comment-16045181 ] Hoss Man commented on SOLR-10864: - The value add here is that it will allow us to much more easily/broadly randomize the testing between Trie & Points fields. The current Trie/Points randomization happens on a "{{}} Name" basis -- ie: {{int}} vs {{pint}}. Which means in order to be used as widely as possible... # it can only be used in tests schemas where there are numeric types with the expected names {{int}} (etc...) # {{pint}} (etc...) fieldType declarations must be _added_ to all of the eligable schemas # *every* numeric {{}} and {{}} declaration in those eligable schemas needs modified to use the randomized properties ...but even then we won't have "total coverage" because of existing test schemas that declare multiple variants of Trie fields (ie: {{int}} may use {{precisionStep="0"}} while the same schema may contain {{tint}} using {{precisionStep="4"}} and changing all of the Integer fields to use the {{int}} type (so it can be randomized as {{pint}}) would decrease our test coverage of dealing with Trie fields. Hence this suggestion: Instead of randomizing the *type* in every numeric {{}} we can randomize the *class* in every numeric {{}} and have to worry about the unused {{precisionStep}} params causing init failures in the tests... * fewer changes & simpler changes to our tests schema files ** only changing the {{}} definitions, not all the {{}} and {{}} definitions ** the changes can be be a scripted regex replacement of the {{solr.Trie(.\*)Field}} clss names -- don't need to manually inspect every schema looking for all the diff type names (int, tint, ints, integer, int_mf, etc...) * which also means the {{}} and {{}} definitions in the test schemas will be easier to read) Any objections? > Add static (test only) boolean to PointField indicating 'precisionStep' > should be ignored > - > > Key: SOLR-10864 > URL: https://issues.apache.org/jira/browse/SOLR-10864 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) >Reporter: Hoss Man >Assignee: Hoss Man > Fix For: master (7.0) > > > (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's > own jira# w/ it's own summary for increased visibility/comments) > In the interest of making it easier & more straight forward to get good > randomized test coverage of Points fields, I'd like to add the following to > the {{PointField}} class... > {code} > /** > * > * The Test framework can set this global variable to instruct PointField > that > * (on init) it should be tollerant of the precisionStep > argument used by TrieFields. > * This allows for simple randomization of TrieFields and PointFields w/o > extensive duplication > * of fieldType/ declarations. > * > * > * NOTE: When {@link TrieField} is removed, this boolean must also be > removed > * > * @lucene.internal > * @lucene.experimental > */ > public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false; > /** > * NOTE: This method can be removed completely when > * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed > */ > @Override > protected void init(IndexSchema schema, Mapargs) { >super.init(schema, args); >if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) { > args.remove("precisionStep"); >} > } > {code} > Then in SolrTestCaseJ4, set > {{PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS}} on a class by class > basis when randomizing Trie/Points (and unset \@AfterClass). > (details to follow in comment) -- 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