[
https://issues.apache.org/jira/browse/SOLR-10864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man updated SOLR-10864:
----------------------------
Attachment: SOLR-10864.patch
Before diving in completely, here's a starting point patch for discussion to
(that's a bit cleaner to follow then everything i've hacked up in the
SOLR-10807 branch).
it updates _most_ of the schema files that were using the old points
randomization sysprops (i just realized i missed a couple) to use the newer
style i was suggesting as well as adding
{{docValues="$\{solr.tests.numeric.points\}"}} as a demo of what i had in mind
regarding Tomas's recent comment (in the SOLR-10807 branch i hacked around this
problem a diff way). One thing didn't spend any time on yet is ripping out
some of the explicit points based fields/dynamicFields from these schemas.
Assuming we go forward with this approach, we could then expand it ot cover all
the schemas - such that nothing ever defined a {{solr.TrieIntField}}
There are still a bunch of test failures with this patch -- most either because
of tests that should be subclassing SOlrTestCaseJ4 but shouldn't for silly
reasons (but i didn't put defaults in for the sysprops because i wanted to help
shake out bugs) or because of legit problems with points that we know about
that we can either update with \@SuppressPoints or disable piecemeal with
{{assumeFalse(Boolean.getBoolean("solr.tests.numeric.points"))). The patch
includes a handful of examples of this.
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"}}
[~tomasflobbe] & [~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?
> 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}
> /**
> * <p>
> * The Test framework can set this global variable to instruct PointField
> that
> * (on init) it should be tollerant of the <code>precisionStep</code>
> argument used by TrieFields.
> * This allows for simple randomization of TrieFields and PointFields w/o
> extensive duplication
> * of <code><fieldType/></code> declarations.
> * </p>
> *
> * <p>NOTE: When {@link TrieField} is removed, this boolean must also be
> removed</p>
> *
> * @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, Map<String, String> args) {
> 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: [email protected]
For additional commands, e-mail: [email protected]