lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Rowe <sar...@gmail.com>
Subject Re: Schema API: add-field-type
Date Tue, 05 May 2015 17:28:03 GMT
Hi Steve, responses inline below:

> On Apr 29, 2015, at 6:50 PM, Steven White <swhite4141@gmail.com> wrote:
> 
> Hi Everyone,
> 
> When I pass the following:
> http://localhost:8983/solr/db/schema/fieldtypes?wt=xml
> 
> I see this (as one example):
> 
>  <lst>
>    <str name="name">date</str>
>    <str name="class">solr.TrieDateField</str>
>    <str name="precisionStep">0</str>
>    <str name="positionIncrementGap">0</str>
>    <arr name="fields">
>      <str>last_modified</str>
>    </arr>
>    <arr name="dynamicFields">
>      <str>*_dts</str>
>      <str>*_dt</str>
>    </arr>
>  </lst>
> 
> See how there is "fields" and "dynamicfields"?  However, when I look in
> schema.xml, I see this:
> 
>  <fieldType name="date" class="solr.TrieDateField" precisionStep="0"
> positionIncrementGap="0"/>
> 
> See how there is nothing about "fields" and "dynamicfields".
> 
> Now, when I look further into the schema.xml, I see they are coming from:
> 
>  <field name="last_modified" type="date" indexed="true" stored="true"/>
>  <dynamicField name="*_dt"  type="date"    indexed="true"  stored="true"/>
>  <dynamicField name="*_dts" type="date"    indexed="true"  stored="true"
> multiValued="true"/>
> 
> So it all makes sense.
> 
> Does this means the response of "fieldtypes" includes "fields" and
> "dynamicfields" as syntactic-sugar to let me know of the relationship this
> field-type has or is there more to it?

It’s FYI: this is the full list of fields and dynamic fields that use the given fieldtype.

> The reason why I care about this question is because I'm using Solr's
> Schema API (see: https://cwiki.apache.org/confluence/display/solr/Schema+API)
> to make changes to my schema.  Per this link:
> https://cwiki.apache.org/confluence/display/solr/Schema+API#SchemaAPI-AddaNewFieldType
> it shows how to add a field-type via "add-field-type" but there is no
> mention of "fields" or "dynamicfields" in this API.  My assumption is
> "fields" and "dynamicfields" need not be part of this API, instead it is
> done via "add-field" and "add-dynamic-field", thus what I see in the XML of
> "fieldtypes" response is just syntactic-sugar.  Did I get all this right?
> 

Yes, as you say, to add (dynamic) fields after adding a field type, you must use the “add-field”
and “add-dynamic-field” commands.  Note that you can do so in a single request if you
like, as long as “add-field-type” is ordered before any referencing “add-field”/“add-dynamic-field”
command.

To be clear, the “add-field-type” command does not support passing in a set of fields
and/or dynamic fields to be added with the new field type.

Steve


Mime
View raw message