[
https://issues.apache.org/jira/browse/SOLR-5228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13944282#comment-13944282
]
Steve Rowe commented on SOLR-5228:
----------------------------------
Hi Erick,
Patch looks fine, except, as Robert said earlier:
{quote}
Can we just go the simple route of deprecating 'fields' and 'types' in 4.x
(throw error in 5.x), and in 4.x also allow field/fieldtypes to be "top-level"
in the schema.
I think this is ultimately simpler than just willy-nilly allowing shit to be
nested underneath anywhere: thats hard to maintain:
{quote}
Your XPath changes in {{IndexSchema}} willy-nilly allow (dynamic)field /
fieldType to be nested underneath anywhere:
{noformat}
465: // ../fieldType or fieldtype
466: expression = "//" + FIELD_TYPE + XPATH_OR + "//" +
FIELD_TYPE.toLowerCase(Locale.ROOT);
[...]
638: // ../field | /schema/dynamicField
639: String expression = "//" + FIELD + XPATH_OR + "//" + DYNAMIC_FIELD;
640: NodeList nodes = (NodeList)xpath.evaluate(expression, document,
XPathConstants.NODESET);
{noformat}
I think we should keep the old XPath and *add* ones allowing top-level
versions, something like (untested) the following (after putting back the TYPES
constant):
{noformat}
466: // /schema/fieldtype | /schema/fieldType |
/schema/types/fieldtype | /schema/types/fieldType
467: expression = stepsToPath(SCHEMA, TYPES,
FIELD_TYPE.toLowerCase(Locale.ROOT)) // backcompat(?)
468: + XPATH_OR + stepsToPath(SCHEMA, TYPES, FIELD_TYPE)
469: + XPATH_OR + stepsToPath(SCHEMA, FIELD_TYPE.toLowerCase(Locale.ROOT))
470: + XPATH_OR + stepsToPath(SCHEMA, FIELD_TYPE);
[...]
642: // /schema/field | /schema/dynamicField |
/schema/fields/field | /schema/fields/dynamicField
643: String expression = stepsToPath(SCHEMA, FIELDS, FIELD)
644: + XPATH_OR + stepsToPath(SCHEMA, FIELDS, DYNAMIC_FIELD)
645: + XPATH_OR + stepsToPath(SCHEMA, FIELD)
646: + XPATH_OR + stepsToPath(SCHEMA, DYNAMIC_FIELD);
{noformat}
> Don't require <field> or <dynamicField> be inside of <fields> -- or that
> <fieldType> be inside of <types>
> ---------------------------------------------------------------------------------------------------------
>
> Key: SOLR-5228
> URL: https://issues.apache.org/jira/browse/SOLR-5228
> Project: Solr
> Issue Type: Improvement
> Components: Schema and Analysis
> Reporter: Hoss Man
> Assignee: Erick Erickson
> Attachments: SOLR-5228.patch
>
>
> On the solr-user mailing list, Nutan recently mentioned spending days trying
> to track down a problem that turned out to be because he had attempted to add
> a {{<dynamicField .. />}} that was outside of the {{<fields>}} block in his
> schema.xml -- Solr was just silently ignoring it.
> We have made improvements in other areas of config validation by generating
> statup errors when tags/attributes are found that are not expected -- but in
> this case i think we should just stop expecting/requiring that the
> {{<fields>}} and {{<types>}} tags will be used to group these sorts of
> things. I think schema.xml parsing should just start ignoring them and only
> care about finding the {{<field>}}, {{<dynamicField>}}, and {{<fieldType>}}
> tags wherever they may be.
> If people want to keep using them, fine. If people want to mix fieldTypes
> and fields side by side (perhaps specify a fieldType, then list all the
> fields using it) fine. I don't see any value in forcing people to use them,
> but we definitely shouldn't leave things the way they are with otherwise
> perfectly valid field/type declarations being silently ignored.
> ---
> I'll take this on unless i see any objections.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]