allisonc

schema.xml

Jan 3rd, 2018
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 48.15 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!--
  3. Licensed to the Apache Software Foundation (ASF) under one or more
  4. contributor license agreements.  See the NOTICE file distributed with
  5. this work for additional information regarding copyright ownership.
  6. The ASF licenses this file to You under the Apache License, Version 2.0
  7. (the "License"); you may not use this file except in compliance with
  8. the License.  You may obtain a copy of the License at
  9.  
  10.     http://www.apache.org/licenses/LICENSE-2.0
  11.  
  12. Unless required by applicable law or agreed to in writing, software
  13. distributed under the License is distributed on an "AS IS" BASIS,
  14. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. See the License for the specific language governing permissions and
  16. limitations under the License.
  17. -->
  18. <!DOCTYPE schema [
  19.  <!ENTITY extrafields SYSTEM "schema_extra_fields.xml">
  20.   <!ENTITY extratypes SYSTEM "schema_extra_types.xml">
  21.   <!ENTITY legacyfields SYSTEM "schema_legacy_fields.xml">
  22.   <!ENTITY legacytypes SYSTEM "schema_legacy_types.xml">
  23. ]>
  24.  
  25. <!--
  26. This is the Solr schema file. This file should be named "schema.xml" and
  27. should be in the conf directory under the solr home
  28. (i.e. ./solr/conf/schema.xml by default)
  29. or located where the classloader for the Solr webapp can find it.
  30.  
  31. This example schema is the recommended starting point for users.
  32. It should be kept correct and concise, usable out-of-the-box.
  33.  
  34. For more information, on how to customize this file, please see
  35. http://wiki.apache.org/solr/SchemaXml
  36.  
  37. PERFORMANCE NOTE: this schema includes many optional features and should not
  38. be used for benchmarking.  To improve performance one could
  39.  - set stored="false" for all fields possible (esp large fields) when you
  40.    only need to search on the field but don't need to return the original
  41.    value.
  42.  - set indexed="false" if you don't need to search on the field, but only
  43.    return the field as a result of searching on other indexed fields.
  44.  - remove all unneeded copyField statements
  45.  - for best index size and searching performance, set "index" to false
  46.    for all general text fields, use copyField to copy them to the
  47.    catchall "text" field, and use that for searching.
  48.  - For maximum indexing performance, use the ConcurrentUpdateSolrServer
  49.    java client.
  50.  - Remember to run the JVM in server mode, and use a higher logging level
  51.    that avoids logging every request
  52. -->
  53.  
  54. <schema name="drupal-5.5-solr-6.x" version="1.6">
  55.   <!-- attribute "name" is the name of this schema and is only used for display purposes.
  56.       version="x.y" is Solr's version number for the schema syntax and
  57.       semantics.  It should not normally be changed by applications.
  58.  
  59.       1.0: multiValued attribute did not exist, all fields are multiValued
  60.            by nature
  61.       1.1: multiValued attribute introduced, false by default
  62.       1.2: omitTermFreqAndPositions attribute introduced, true by default
  63.            except for text fields.
  64.       1.3: removed optional field compress feature
  65.       1.4: autoGeneratePhraseQueries attribute introduced to drive QueryParser
  66.            behavior when a single string produces multiple tokens.  Defaults
  67.            to off for version >= 1.4
  68.       1.5: omitNorms defaults to true for primitive field types
  69.            (int, float, boolean, string...)
  70.       1.6: useDocValuesAsStored defaults to true.
  71.     -->
  72.  
  73.  
  74.    <!-- Valid attributes for fields:
  75.     name: mandatory - the name for the field
  76.     type: mandatory - the name of a field type from the
  77.       <types> fieldType section
  78.     indexed: true if this field should be indexed (searchable or sortable)
  79.     stored: true if this field should be retrievable
  80.     docValues: true if this field should have doc values. Doc values are
  81.       useful for faceting, grouping, sorting and function queries. Although not
  82.       required, doc values will make the index faster to load, more
  83.       NRT-friendly and more memory-efficient. They however come with some
  84.       limitations: they are currently only supported by StrField, UUIDField
  85.       and all Trie*Fields, and depending on the field type, they might
  86.       require the field to be single-valued, be required or have a default
  87.       value (check the documentation of the field type you're interested in
  88.       for more information)
  89.     multiValued: true if this field may contain multiple values per document
  90.     omitNorms: (expert) set to true to omit the norms associated with
  91.       this field (this disables length normalization and index-time
  92.       boosting for the field, and saves some memory).  Only full-text
  93.       fields or fields that need an index-time boost need norms.
  94.       Norms are omitted for primitive (non-analyzed) types by default.
  95.     termVectors: [false] set to true to store the term vector for a
  96.       given field.
  97.       When using MoreLikeThis, fields used for similarity should be
  98.       stored for best performance.
  99.     termPositions: Store position information with the term vector.
  100.       This will increase storage costs.
  101.     termOffsets: Store offset information with the term vector. This
  102.       will increase storage costs.
  103.     required: The field is required.  It will throw an error if the
  104.       value does not exist
  105.     default: a value that should be used if no value is specified
  106.       when adding a document.
  107.   -->
  108.  
  109.    <!-- field names should consist of alphanumeric or underscore characters only and
  110.      not start with a digit.  This is not currently strictly enforced,
  111.      but other field names will not have first class support from all components
  112.      and back compatibility is not guaranteed.  Names with both leading and
  113.      trailing underscores (e.g. _version_) are reserved.
  114.   -->
  115.  
  116.    <!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
  117.      or Solr won't start. _version_ and update log are required for SolrCloud
  118.   -->
  119.    <field name="_version_" type="long" indexed="true" stored="true"/>
  120.  
  121.    <!-- points to the root document of a block of nested documents. Required for nested
  122.      document support, may be removed otherwise
  123.   -->
  124.    <field name="_root_" type="string" indexed="true" stored="false"/>
  125.  
  126.   <!-- Only remove the "id" field if you have a very good reason to. While not strictly
  127.  required, it is highly recommended. A <uniqueKey> is present in almost all Solr
  128.  installations. See the <uniqueKey> declaration below where <uniqueKey> is set to "id".
  129.  -->
  130.   <!-- The document id is usually derived from a site-spcific key (hash) and the
  131.    entity type and ID like:
  132.    Search Api 7.x:
  133.      The format used is $document->id = $index_id . '-' . $item_id
  134.    Search Api 8.x:
  135.      The format used is $document->id = $site_hash . '-' . $index_id . '-' . $item_id
  136.    Apache Solr Search Integration 7.x:
  137.      The format used is $document->id = $site_hash . '/' . $entity_type . '/' . $entity->id;
  138.  -->
  139.   <field name="id" type="string" indexed="true" stored="true" required="true" />
  140.  
  141.   <!-- Search Api specific fields -->
  142.   <!-- index_id is the machine name of the search index this entry belongs to. -->
  143.   <field name="index_id" type="string" indexed="true" stored="true" />
  144.  
  145.   <!-- Here, default is used to create a "timestamp" field indicating
  146.       when each document was indexed.-->
  147.   <field name="timestamp" type="tdate" indexed="true" stored="true" default="NOW" multiValued="false"/>
  148.  
  149.   <!-- This field is used to build the spellchecker index -->
  150.   <field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>
  151.  
  152.   <field name="site" type="string" indexed="true" stored="true"/>
  153.   <field name="hash" type="string" indexed="true" stored="true"/>
  154.   <!--TF custom-->
  155.   <field name="url" type="string" indexed="true" stored="true"/>
  156.   <field name="title" type="text" indexed="true" stored="true" termVectors="true" omitNorms="true"/>
  157.   <field name="price" type="tfloat" indexed="true" stored="true"/>
  158.   <field name="sort_title" type="sortString" indexed="true" stored="false"/>
  159.   <field name="body" type="text" indexed="true" stored="true" termVectors="true"/>
  160.   <field name="keywords" type="text" indexed="true" stored="true" multiValued="true"/>
  161.   <field name="author"  type="int" indexed="true" stored="true"/>
  162.   <field name="author_name"  type="string" indexed="true" stored="true"/>
  163.   <field name="cnvnode"  type="int" indexed="true" stored="true"/>
  164.   <field name="bifthumb"  type="string" indexed="true" stored="true"/>
  165.   <field name="bif"  type="text" indexed="false" stored="true"/>
  166.   <field name="bifcount" type="int"  stored="true"/>
  167.   <field name="type" type="string" indexed="true" stored="true" multiValued="true"/>
  168.   <field name="print_options" type="int" indexed="true" stored="true"/>
  169.   <field name="apptype" type="int" indexed="true" stored="true"/>  
  170.   <field name="filename" type="string" indexed="true" stored="true"/>
  171.   <field name="uid"  type="int" indexed="true" stored="true"/>
  172.   <field name="name" type="text" indexed="true" stored="true" termVectors="true"/>
  173.   <field name="sname" type="string" indexed="true" stored="false"/>
  174.   <field name="sort_name" type="sortString" indexed="true" stored="false"/>
  175.   <field name="nid"  type="int" indexed="true" stored="true"/>
  176.   <field name="width"  type="int" indexed="false" stored="true"/>
  177.   <field name="height"  type="int" indexed="false" stored="true"/>
  178.   <field name="size" type="int" indexed="true" stored="true" termVectors="true"/>
  179.   <field name="tnid"  type="int" indexed="true" stored="true"/>
  180.   <field name="tid"  type="int" indexed="true" stored="true" multiValued="true"/>
  181.   <field name="vid"  type="int" indexed="true" stored="true" multiValued="true"/>
  182.   <field name="sizes" type="text" indexed="false" stored="true"/>
  183.   <field name="sizenid"  type="int" indexed="true" stored="true" multiValued="true"/>
  184.   <field name="frameimage"  type="string" indexed="true" stored="true" multiValued="true"/>
  185.   <field name="frametype"  type="string" indexed="true" stored="true" multiValued="true"/>
  186.   <field name="taxonomy_names" type="text" indexed="true" stored="false" multiValued="true" omitNorms="true"/>
  187.   <copyField source="title" dest="sort_title"/>
  188.   <copyField source="name" dest="sname"/>
  189.   <copyField source="name" dest="sort_name"/>
  190.   <copyField source="ts_vid_*" dest="taxonomy_names"/>
  191.   <field name="tags_h1" type="text" indexed="true" stored="false" omitNorms="true"/>
  192.   <field name="tags_h2_h3" type="text" indexed="true" stored="false" omitNorms="true"/>
  193.   <field name="tags_h4_h5_h6" type="text" indexed="true" stored="false" omitNorms="true"/>
  194.   <field name="tags_a" type="text" indexed="true" stored="false" omitNorms="true"/>
  195.   <field name="tags_inline" type="text" indexed="true" stored="false" omitNorms="true"/>
  196.   <copyField source="title" dest="spell"/>
  197.   <copyField source="body" dest="spell"/>
  198.   <dynamicField name="sis_*" type="tint"    indexed="true"  stored="true" multiValued="false"/>
  199.   <dynamicField name="sim_*" type="tint"    indexed="true"  stored="true" multiValued="true"/>
  200.    
  201.   <dynamicField name="sort_ss_*" type="sortString" indexed="true" stored="false"/>
  202.   <copyField source="ss_*" dest="sort_ss_*"/>
  203.  
  204.   <dynamicField name="nodeaccess*" type="int" indexed="true" stored="false" multiValued="true"/>
  205.   <field name="stitle" type="string" indexed="true" stored="true"/>
  206.   <field name="title_sort" type="sortString" indexed="true" stored="false"/>
  207.   <field name="name_sort" type="sortString" indexed="true" stored="false"/>
  208.   <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" />
  209.   <solrQueryParser defaultOperator="AND"/>
  210.   <!--TF custom end-->
  211.  
  212.   <!-- copyField commands copy one field to another at the time a document
  213.       is added to the index.  It's used either to index the same field differently,
  214.       or to add multiple fields to the same field for easier/faster searching.  -->
  215.   <copyField source="ts_*" dest="spell"/>
  216.   <copyField source="tm_*" dest="spell"/>
  217.  
  218.   <copyField source="ts_*" dest="terms_ts_*"/>
  219.   <copyField source="tm_*" dest="terms_tm_*"/>
  220.  
  221.   <!-- Dynamic field definitions.  If a field name is not found, dynamicFields
  222.       will be used if the name matches any of the patterns.
  223.       RESTRICTION: the glob-like pattern in the name attribute must have
  224.       a "*" only at the start or the end.
  225.       EXAMPLE:  name="*_i" will match any field ending in _i (like myid_i, z_i)
  226.       Longer patterns will be matched first.  if equal size patterns
  227.       both match, the first appearing in the schema will be used.  -->
  228.  
  229.   <!-- For 2 and 3 letter prefix dynamic fields, the 1st letter indicates the data type and
  230.       the last letter is 's' for single valued, 'm' for multi-valued -->
  231.  
  232.   <!-- We use long for integer since 64 bit ints are now common in PHP. -->
  233.   <dynamicField name="is_*"  type="long"    indexed="true"  stored="true" multiValued="false"/>
  234.   <dynamicField name="im_*"  type="long"    indexed="true"  stored="true" multiValued="true"/>
  235.   <!-- List of floats can be saved in a regular float field -->
  236.   <dynamicField name="fs_*"  type="float"   indexed="true"  stored="true" multiValued="false"/>
  237.   <dynamicField name="fm_*"  type="float"   indexed="true"  stored="true" multiValued="true"/>
  238.   <!-- List of doubles can be saved in a regular double field -->
  239.   <dynamicField name="ps_*"  type="double"   indexed="true"  stored="true" multiValued="false"/>
  240.   <dynamicField name="pm_*"  type="double"   indexed="true"  stored="true" multiValued="true"/>
  241.   <!-- List of booleans can be saved in a regular boolean field -->
  242.   <dynamicField name="bm_*"  type="boolean" indexed="true"  stored="true" multiValued="true"/>
  243.   <dynamicField name="bs_*"  type="boolean" indexed="true"  stored="true" multiValued="false"/>
  244.   <!-- Regular text (without processing) can be stored in a string field-->
  245.   <dynamicField name="ss_*"  type="string"  indexed="true"  stored="true" multiValued="false"/>
  246.   <dynamicField name="sm_*"  type="string"  indexed="true"  stored="true" multiValued="true"/>
  247.   <dynamicField name="ses_*" type="edge_n2_kw_string"  indexed="true"  stored="true" multiValued="false"/>
  248.   <dynamicField name="sem_*" type="edge_n2_kw_string"  indexed="true"  stored="true" multiValued="true"/>
  249.   <!-- Normal text fields are for full text - the relevance of a match depends on the length of the text -->
  250.   <dynamicField name="ts_*"  type="text"    indexed="true"  stored="true" multiValued="false" termVectors="true"/>
  251.   <dynamicField name="tm_*"  type="text"    indexed="true"  stored="true" multiValued="true" termVectors="true"/>
  252.   <!-- Unstemmed text fields for full text - the relevance of a match depends on the length of the text -->
  253.   <dynamicField name="tus_*" type="text_und" indexed="true"  stored="true" multiValued="false" termVectors="true"/>
  254.   <dynamicField name="tum_*" type="text_und" indexed="true"  stored="true" multiValued="true" termVectors="true"/>
  255.   <!-- These text fields omit norms - useful for extracted text like taxonomy_names -->
  256.   <dynamicField name="tos_*" type="text"    indexed="true"  stored="true" multiValued="false" termVectors="true" omitNorms="true"/>
  257.   <dynamicField name="tom_*" type="text"    indexed="true"  stored="true" multiValued="true" termVectors="true" omitNorms="true"/>
  258.   <!-- Special-purpose text fields -->
  259.   <dynamicField name="tes_*" type="edge_n2_kw_text" indexed="true" stored="true" multiValued="false" omitTermFreqAndPositions="true" />
  260.   <dynamicField name="tem_*" type="edge_n2_kw_text" indexed="true" stored="true" multiValued="true" omitTermFreqAndPositions="true" />
  261.   <dynamicField name="tws_*" type="text_ws" indexed="true" stored="true" multiValued="false"/>
  262.   <dynamicField name="twm_*" type="text_ws" indexed="true" stored="true" multiValued="true"/>
  263.  
  264.   <dynamicField name="terms_ts_*" type="textSpell" indexed="true" stored="true" multiValued="false" termVectors="true"/>
  265.   <dynamicField name="terms_tm_*" type="textSpell" indexed="true" stored="true" multiValued="true" termVectors="true"/>
  266.  
  267.   <!-- trie dates are preferred, so give them the 2 letter prefix -->
  268.   <dynamicField name="ds_*"  type="tdate"   indexed="true"  stored="true" multiValued="false"/>
  269.   <dynamicField name="dm_*"  type="tdate"   indexed="true"  stored="true" multiValued="true"/>
  270.   <dynamicField name="its_*" type="tlong"   indexed="true"  stored="true" multiValued="false"/>
  271.   <dynamicField name="itm_*" type="tlong"   indexed="true"  stored="true" multiValued="true"/>
  272.   <dynamicField name="fts_*" type="tfloat"  indexed="true"  stored="true" multiValued="false"/>
  273.   <dynamicField name="ftm_*" type="tfloat"  indexed="true"  stored="true" multiValued="true"/>
  274.   <dynamicField name="pts_*" type="tdouble" indexed="true"  stored="true" multiValued="false"/>
  275.   <dynamicField name="ptm_*" type="tdouble" indexed="true"  stored="true" multiValued="true"/>
  276.   <!-- Binary fields can be populated using base64 encoded data. Useful e.g. for embedding
  277.       a small image in a search result using the data URI scheme -->
  278.   <dynamicField name="xs_*"  type="binary"  indexed="false" stored="true" multiValued="false"/>
  279.   <dynamicField name="xm_*"  type="binary"  indexed="false" stored="true" multiValued="true"/>
  280.   <!-- In rare cases a date rather than tdate is needed for sortMissingLast -->
  281.   <dynamicField name="dds_*" type="date"    indexed="true"  stored="true" multiValued="false"/>
  282.   <dynamicField name="ddm_*" type="date"    indexed="true"  stored="true" multiValued="true"/>
  283.   <!-- In case a 32 bit int is really needed, we provide these fields. 'h' is mnemonic for 'half word', i.e. 32 bit on 64 arch -->
  284.   <dynamicField name="hs_*" type="int" indexed="true"  stored="true" multiValued="false"/>
  285.   <dynamicField name="hm_*" type="int" indexed="true"  stored="true" multiValued="true"/>
  286.   <dynamicField name="hts_*" type="tint"   indexed="true"  stored="true" multiValued="false"/>
  287.   <dynamicField name="htm_*" type="tint"   indexed="true"  stored="true" multiValued="true"/>
  288.  
  289.   <!-- Unindexed string fields that can be used to store values that won't be searchable -->
  290.   <dynamicField name="zs_*" type="string"   indexed="false"  stored="true" multiValued="false"/>
  291.   <dynamicField name="zm_*" type="string"   indexed="false"  stored="true" multiValued="true"/>
  292.  
  293.   <!-- Fields for location searches.
  294.       http://wiki.apache.org/solr/SpatialSearch#geodist_-_The_distance_function -->
  295.   <dynamicField name="points_*" type="point" indexed="true"  stored="true" multiValued="false"/>
  296.   <dynamicField name="pointm_*" type="point" indexed="true"  stored="true" multiValued="true"/>
  297.   <!--<dynamicField name="locs_*" type="location" indexed="true"  stored="true" multiValued="false"/>
  298.  <dynamicField name="locm_*" type="location" indexed="true"  stored="true" multiValued="true"/>-->
  299.   <!--<dynamicField name="geos_*" type="geohash" indexed="true"  stored="true" multiValued="false"/>
  300.  <dynamicField name="geom_*" type="geohash" indexed="true"  stored="true" multiValued="true"/>-->
  301.   <dynamicField name="bboxs_*" type="bbox" indexed="true" stored="true" multiValued="false" />
  302.   <dynamicField name="bboxm_*" type="bbox" indexed="true" stored="true" multiValued="true" />
  303.   <dynamicField name="rpts_*" type="location_rpt" indexed="true" stored="true" multiValued="false" />
  304.   <dynamicField name="rptm_*" type="location_rpt" indexed="true" stored="true" multiValued="true" />
  305.  
  306.   <!-- Special fields for Solr 5 functionality. -->
  307.   <dynamicField name="phons_*" type="phonetic" indexed="true" stored="true" multiValued="false" />
  308.   <dynamicField name="phonm_*" type="phonetic" indexed="true" stored="true" multiValued="true" />
  309.  
  310.   <!-- External file fields -->
  311.   <dynamicField name="eff_*" type="file"/>
  312.  
  313.   <!-- Sortable version of the dynamic string field -->
  314.   <dynamicField name="sort_*" type="sortString" indexed="true" stored="false"/>
  315.  
  316.   <!-- A random sort field -->
  317.   <dynamicField name="random_*" type="random" indexed="true" stored="true"/>
  318.  
  319.   <!-- This field is used to store access information (e.g. node access grants), as opposed to field data -->
  320.   <dynamicField name="access_*" type="int" indexed="true" stored="false" multiValued="true"/>
  321.  
  322.   <!-- The following causes solr to ignore any fields that don't already match an existing
  323.       field name or dynamic field, rather than reporting them as an error.
  324.       Alternately, change the type="ignored" to some other type e.g. "text" if you want
  325.       unknown fields indexed and/or stored by default -->
  326.   <dynamicField name="*" type="ignored" multiValued="true" />
  327.  
  328.  
  329.     <!-- field type definitions. The "name" attribute is
  330.       just a label to be used by field definitions.  The "class"
  331.       attribute and any other attributes determine the real
  332.       behavior of the fieldType.
  333.         Class names starting with "solr" refer to java classes in a
  334.       standard package such as org.apache.solr.analysis
  335.    -->
  336.  
  337.     <!-- The StrField type is not analyzed, but indexed/stored verbatim.
  338.       It supports doc values but in that case the field needs to be
  339.       single-valued and either required or have a default value.
  340.      -->
  341.     <fieldType name="string" class="solr.StrField"/>
  342.  
  343.     <!-- boolean type: "true" or "false" -->
  344.     <fieldType name="boolean" class="solr.BoolField"/>
  345.  
  346.     <!-- sortMissingLast and sortMissingFirst attributes are optional attributes are
  347.         currently supported on types that are sorted internally as strings
  348.         and on numeric types.
  349.       This includes "string","boolean", and, as of 3.5 (and 4.x),
  350.       int, float, long, date, double, including the "Trie" variants.
  351.       - If sortMissingLast="true", then a sort on this field will cause documents
  352.         without the field to come after documents with the field,
  353.         regardless of the requested sort order (asc or desc).
  354.       - If sortMissingFirst="true", then a sort on this field will cause documents
  355.         without the field to come before documents with the field,
  356.         regardless of the requested sort order.
  357.       - If sortMissingLast="false" and sortMissingFirst="false" (the default),
  358.         then default lucene sorting will be used which places docs without the
  359.         field first in an ascending sort and last in a descending sort.
  360.    -->
  361.  
  362.     <!--
  363.      Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.
  364.  
  365.      These fields support doc values, but they require the field to be
  366.      single-valued and either be required or have a default value.
  367.    -->
  368.     <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
  369.     <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
  370.     <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
  371.     <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
  372.  
  373.     <!--
  374.     Numeric field types that index each value at various levels of precision
  375.     to accelerate range queries when the number of values between the range
  376.     endpoints is large. See the javadoc for NumericRangeQuery for internal
  377.     implementation details.
  378.  
  379.     Smaller precisionStep values (specified in bits) will lead to more tokens
  380.     indexed per value, slightly larger index size, and faster range queries.
  381.     A precisionStep of 0 disables indexing at different precision levels.
  382.    -->
  383.     <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
  384.     <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
  385.     <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
  386.     <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
  387.  
  388.     <!--
  389.     The ExternalFileField type gets values from an external file instead of the
  390.     index. This is useful for data such as rankings that might change frequently
  391.     and require different update frequencies than the documents they are
  392.     associated with.
  393.    -->
  394.     <fieldType name="file" keyField="id" defVal="1" stored="false" indexed="false" class="solr.ExternalFileField" valType="float"/>
  395.  
  396.     <!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
  397.         is a more restricted form of the canonical representation of dateTime
  398.         http://www.w3.org/TR/xmlschema-2/#dateTime
  399.         The trailing "Z" designates UTC time and is mandatory.
  400.         Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
  401.         All other components are mandatory.
  402.  
  403.         Expressions can also be used to denote calculations that should be
  404.         performed relative to "NOW" to determine the value, ie...
  405.  
  406.               NOW/HOUR
  407.                  ... Round to the start of the current hour
  408.               NOW-1DAY
  409.                  ... Exactly 1 day prior to now
  410.               NOW/DAY+6MONTHS+3DAYS
  411.                  ... 6 months and 3 days in the future from the start of
  412.                      the current day
  413.  
  414.         Consult the TrieDateField javadocs for more information.
  415.  
  416.         Note: For faster range queries, consider the tdate type
  417.      -->
  418.     <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0" omitNorms="true"/>
  419.  
  420.     <!-- A Trie based date field for faster date range queries and date faceting. -->
  421.     <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
  422.  
  423.  
  424.     <!--Binary data type. The data should be sent/retrieved in as Base64 encoded Strings -->
  425.     <fieldType name="binary" class="solr.BinaryField"/>
  426.  
  427.     <!-- The "RandomSortField" is not used to store or search any
  428.         data.  You can declare fields of this type it in your schema
  429.         to generate pseudo-random orderings of your docs for sorting
  430.         or function purposes.  The ordering is generated based on the field
  431.         name and the version of the index. As long as the index version
  432.         remains unchanged, and the same field name is reused,
  433.         the ordering of the docs will be consistent.
  434.         If you want different psuedo-random orderings of documents,
  435.         for the same version of the index, use a dynamicField and
  436.         change the field name in the request.
  437.     -->
  438.     <fieldType name="random" class="solr.RandomSortField" indexed="true" />
  439.  
  440.     <!-- solr.TextField allows the specification of custom text analyzers
  441.         specified as a tokenizer and a list of token filters. Different
  442.         analyzers may be specified for indexing and querying.
  443.  
  444.         The optional positionIncrementGap puts space between multiple fields of
  445.         this type on the same document, with the purpose of preventing false phrase
  446.         matching across fields.
  447.  
  448.         For more info on customizing your analyzer chain, please see
  449.         http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
  450.     -->
  451.  
  452.     <!-- One can also specify an existing Analyzer class that has a
  453.         default constructor via the class attribute on the analyzer element.
  454.         Example:
  455.    <fieldType name="text_greek" class="solr.TextField">
  456.      <analyzer class="org.apache.lucene.analysis.el.GreekAnalyzer"/>
  457.    </fieldType>
  458.    -->
  459.  
  460.     <!-- A text field that only splits on whitespace for exact matching of words -->
  461.     <fieldType name="text_ws" class="solr.TextField" omitNorms="true" positionIncrementGap="100">
  462.       <analyzer>
  463.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  464.         <filter class="solr.LowerCaseFilterFactory"/>
  465.       </analyzer>
  466.     </fieldType>
  467.  
  468.     <!-- A text field that uses WordDelimiterFilter to enable splitting and matching of
  469.        words on case-change, alpha numeric boundaries, and non-alphanumeric chars,
  470.        so that a query of "wifi" or "wi fi" could match a document containing "Wi-Fi".
  471.        Synonyms and stopwords are customized by external files, and stemming is enabled.
  472.        Duplicate tokens at the same position (which may result from Stemmed Synonyms or
  473.        WordDelim parts) are removed.
  474.        -->
  475.     <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  476.       <analyzer type="index">
  477.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  478.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  479.         <!-- in this example, we will only use synonyms at query time
  480.        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
  481.        -->
  482.         <!-- Case insensitive stop word removal. -->
  483.         <filter class="solr.StopFilterFactory"
  484.                ignoreCase="true"
  485.                words="stopwords.txt"
  486.                />
  487.         <!--<filter class="solr.WordDelimiterFilterFactory"
  488.                protected="protwords.txt"
  489.                generateWordParts="1"
  490.                generateNumberParts="1"
  491.                catenateWords="1"
  492.                catenateNumbers="1"
  493.                catenateAll="0"
  494.                splitOnCaseChange="0"
  495.                preserveOriginal="1"/>-->
  496.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  497.         <filter class="solr.LowerCaseFilterFactory"/>
  498.         <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  499.         <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  500.       </analyzer>
  501.       <analyzer type="query">
  502.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  503.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  504.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  505.         <filter class="solr.StopFilterFactory"
  506.                ignoreCase="true"
  507.                words="stopwords.txt"
  508.                />
  509.         <!--<filter class="solr.WordDelimiterFilterFactory"
  510.                protected="protwords.txt"
  511.                generateWordParts="1"
  512.                generateNumberParts="1"
  513.                catenateWords="0"
  514.                catenateNumbers="0"
  515.                catenateAll="0"
  516.                splitOnCaseChange="0"
  517.                preserveOriginal="1"/>-->
  518.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  519.         <filter class="solr.LowerCaseFilterFactory"/>
  520.         <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  521.         <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  522.       </analyzer>
  523.       <analyzer type="multiterm">
  524.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  525.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  526.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  527.         <filter class="solr.StopFilterFactory"
  528.                ignoreCase="true"
  529.                words="stopwords.txt"
  530.                />
  531.         <!--<filter class="solr.WordDelimiterFilterFactory"
  532.                protected="protwords.txt"
  533.                generateWordParts="1"
  534.                generateNumberParts="1"
  535.                catenateWords="0"
  536.                catenateNumbers="0"
  537.                catenateAll="0"
  538.                splitOnCaseChange="1"
  539.                preserveOriginal="1"/>-->
  540.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  541.         <filter class="solr.LowerCaseFilterFactory"/>
  542.         <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  543.         <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  544.       </analyzer>
  545.     </fieldType>
  546.  
  547.     <!-- An unstemmed text field - good if one does not know the language of the field -->
  548.     <fieldType name="text_und" class="solr.TextField" positionIncrementGap="100">
  549.       <analyzer type="index">
  550.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  551.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  552.         <!--<filter class="solr.WordDelimiterFilterFactory"
  553.                protected="protwords.txt"
  554.                generateWordParts="1"
  555.                generateNumberParts="1"
  556.                catenateWords="1"
  557.                catenateNumbers="1"
  558.                catenateAll="0"
  559.                splitOnCaseChange="0"/>-->
  560.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  561.         <filter class="solr.LowerCaseFilterFactory"/>
  562.       </analyzer>
  563.       <analyzer type="query">
  564.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  565.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  566.         <filter class="solr.StopFilterFactory"
  567.                ignoreCase="true"
  568.                words="stopwords.txt"
  569.                />
  570.         <!--<filter class="solr.WordDelimiterFilterFactory"
  571.                protected="protwords.txt"
  572.                generateWordParts="1"
  573.                generateNumberParts="1"
  574.                catenateWords="0"
  575.                catenateNumbers="0"
  576.                catenateAll="0"
  577.                splitOnCaseChange="0"/>-->
  578.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  579.         <filter class="solr.LowerCaseFilterFactory"/>
  580.       </analyzer>
  581.       <analyzer type="multiterm">
  582.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  583.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  584.         <filter class="solr.StopFilterFactory"
  585.                ignoreCase="true"
  586.                words="stopwords.txt"
  587.                />
  588.         <!--<filter class="solr.WordDelimiterFilterFactory"
  589.                protected="protwords.txt"
  590.                generateWordParts="1"
  591.                generateNumberParts="1"
  592.                catenateWords="0"
  593.                catenateNumbers="0"
  594.                catenateAll="0"
  595.                splitOnCaseChange="0"/>-->
  596.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  597.         <filter class="solr.LowerCaseFilterFactory"/>
  598.       </analyzer>
  599.     </fieldType>
  600.  
  601.     <fieldType name="edge_n2_kw_text" class="solr.TextField" positionIncrementGap="100">
  602.       <analyzer type="index">
  603.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  604.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  605.         <!-- Case insensitive stop word removal. -->
  606.         <filter class="solr.StopFilterFactory"
  607.                ignoreCase="true"
  608.                words="stopwords.txt"
  609.        />
  610.         <!--<filter class="solr.WordDelimiterFilterFactory"
  611.                protected="protwords.txt"
  612.                generateWordParts="1"
  613.                generateNumberParts="1"
  614.                catenateWords="1"
  615.                catenateNumbers="1"
  616.                catenateAll="0"
  617.                splitOnCaseChange="0"
  618.                preserveOriginal="1"/>-->
  619.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  620.         <filter class="solr.LowerCaseFilterFactory"/>
  621.         <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  622.         <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="25" />
  623.       </analyzer>
  624.       <analyzer type="query">
  625.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  626.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  627.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  628.         <filter class="solr.StopFilterFactory"
  629.                ignoreCase="true"
  630.                words="stopwords.txt"
  631.        />
  632.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  633.         <filter class="solr.LowerCaseFilterFactory"/>
  634.       </analyzer>
  635.       <analyzer type="multiterm">
  636.         <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
  637.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  638.         <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
  639.         <filter class="solr.StopFilterFactory"
  640.                ignoreCase="true"
  641.                words="stopwords.txt"
  642.        />
  643.         <filter class="solr.LengthFilterFactory" min="2" max="100" />
  644.         <filter class="solr.LowerCaseFilterFactory"/>
  645.       </analyzer>
  646.     </fieldType>
  647.  
  648.     <!-- Edge N gram type - for example for matching against queries with results
  649.        KeywordTokenizer leaves input string intact as a single term.
  650.        see: http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/
  651.      -->
  652.     <fieldType name="edge_n2_kw_string" class="solr.TextField" omitNorms="true" positionIncrementGap="100">
  653.       <analyzer type="index">
  654.         <tokenizer class="solr.KeywordTokenizerFactory"/>
  655.         <filter class="solr.LowerCaseFilterFactory"/>
  656.         <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="25" />
  657.       </analyzer>
  658.       <analyzer type="query">
  659.         <tokenizer class="solr.KeywordTokenizerFactory"/>
  660.         <filter class="solr.LowerCaseFilterFactory"/>
  661.       </analyzer>
  662.     </fieldType>
  663.  
  664.     <!--  Setup simple analysis for spell checking -->
  665.    <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100">
  666.       <analyzer>
  667.         <tokenizer class="solr.StandardTokenizerFactory" />
  668.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
  669.         <filter class="solr.LengthFilterFactory" min="4" max="20" />
  670.         <filter class="solr.LowerCaseFilterFactory" />
  671.         <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
  672.       </analyzer>
  673.     </fieldType>
  674.  
  675.     <!-- This is an example of using the KeywordTokenizer along
  676.         With various TokenFilterFactories to produce a sortable field
  677.         that does not include some properties of the source text
  678.      -->
  679.     <fieldType name="alphaOnlySort" class="solr.TextField" omitNorms="true">
  680.       <analyzer>
  681.         <!-- KeywordTokenizer does no actual tokenizing, so the entire
  682.             input string is preserved as a single token
  683.          -->
  684.         <tokenizer class="solr.KeywordTokenizerFactory"/>
  685.         <!-- The LowerCase TokenFilter does what you expect, which can be
  686.             when you want your sorting to be case insensitive
  687.          -->
  688.         <filter class="solr.LowerCaseFilterFactory" />
  689.         <!-- The TrimFilter removes any leading or trailing whitespace -->
  690.         <filter class="solr.TrimFilterFactory" />
  691.         <!-- The PatternReplaceFilter gives you the flexibility to use
  692.             Java Regular expression to replace any sequence of characters
  693.             matching a pattern with an arbitrary replacement string,
  694.             which may include back references to portions of the original
  695.             string matched by the pattern.
  696.  
  697.             See the Java Regular Expression documentation for more
  698.             information on pattern and replacement string syntax.
  699.  
  700.             http://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html
  701.          -->
  702.         <filter class="solr.PatternReplaceFilterFactory"
  703.                pattern="([^a-z])" replacement="" replace="all"
  704.        />
  705.       </analyzer>
  706.     </fieldType>
  707.  
  708.     <!-- The Solr 6.x example file replaced the sortString type by alphaOnlySort
  709.         above. This one is not suitable for search_api_id which consists of
  710.         characters, numbers and punctuation, for example
  711.         'entity:entity_test_mulrev_changed/2:en'.
  712.     -->
  713.     <fieldType name="sortString" class="solr.TextField" omitNorms="true">
  714.       <analyzer>
  715.         <!-- KeywordTokenizer does no actual tokenizing, so the entire
  716.            input string is preserved as a single token
  717.          -->
  718.         <tokenizer class="solr.KeywordTokenizerFactory"/>
  719.         <!-- The LowerCase TokenFilter does what you expect, which can be
  720.            when you want your sorting to be case insensitive
  721.          -->
  722.         <filter class="solr.LowerCaseFilterFactory" />
  723.         <!-- The TrimFilter removes any leading or trailing whitespace -->
  724.         <filter class="solr.TrimFilterFactory" />
  725.         <!-- The PatternReplaceFilter gives you the flexibility to use
  726.            Java Regular expression to replace any sequence of characters
  727.            matching a pattern with an arbitrary replacement string,
  728.            which may include back refrences to portions of the orriginal
  729.            string matched by the pattern.
  730.  
  731.            See the Java Regular Expression documentation for more
  732.            infomation on pattern and replacement string syntax.
  733.  
  734.            http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/package-summary.html
  735.  
  736.        <filter class="solr.PatternReplaceFilterFactory"
  737.               pattern="(^\p{Punct}+)" replacement="" replace="all"
  738.        />
  739.        -->
  740.       </analyzer>
  741.     </fieldType>
  742.  
  743.     <fieldType name="phonetic" stored="false" indexed="true" class="solr.TextField" >
  744.       <analyzer>
  745.         <tokenizer class="solr.StandardTokenizerFactory"/>
  746.         <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
  747.       </analyzer>
  748.     </fieldType>
  749.  
  750.     <fieldType name="payloads" stored="false" indexed="true" class="solr.TextField" >
  751.       <analyzer>
  752.         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  753.         <!--
  754.        The DelimitedPayloadTokenFilter can put payloads on tokens... for example,
  755.        a token of "foo|1.4"  would be indexed as "foo" with a payload of 1.4f
  756.        Attributes of the DelimitedPayloadTokenFilterFactory :
  757.         "delimiter" - a one character delimiter. Default is | (pipe)
  758.   "encoder" - how to encode the following value into a playload
  759.      float -> org.apache.lucene.analysis.payloads.FloatEncoder,
  760.      integer -> o.a.l.a.p.IntegerEncoder
  761.      identity -> o.a.l.a.p.IdentityEncoder
  762.            Fully Qualified class name implementing PayloadEncoder, Encoder must have a no arg constructor.
  763.         -->
  764.         <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>
  765.       </analyzer>
  766.     </fieldType>
  767.  
  768.     <!-- lowercases the entire field value, keeping it as a single token.  -->
  769.     <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
  770.       <analyzer>
  771.         <tokenizer class="solr.KeywordTokenizerFactory"/>
  772.         <filter class="solr.LowerCaseFilterFactory" />
  773.       </analyzer>
  774.     </fieldType>
  775.  
  776.     <!--
  777.      Example of using PathHierarchyTokenizerFactory at index time, so
  778.      queries for paths match documents at that path, or in descendent paths
  779.    -->
  780.     <fieldType name="descendent_path" class="solr.TextField">
  781.       <analyzer type="index">
  782.   <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
  783.       </analyzer>
  784.       <analyzer type="query">
  785.   <tokenizer class="solr.KeywordTokenizerFactory" />
  786.       </analyzer>
  787.     </fieldType>
  788.     <!--
  789.      Example of using PathHierarchyTokenizerFactory at query time, so
  790.      queries for paths match documents at that path, or in ancestor paths
  791.    -->
  792.     <fieldType name="ancestor_path" class="solr.TextField">
  793.       <analyzer type="index">
  794.   <tokenizer class="solr.KeywordTokenizerFactory" />
  795.       </analyzer>
  796.       <analyzer type="query">
  797.   <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
  798.       </analyzer>
  799.     </fieldType>
  800.  
  801.     <!-- since fields of this type are by default not stored or indexed,
  802.         any data added to them will be ignored outright.  -->
  803.     <fieldType name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
  804.  
  805.     <!-- This point type indexes the coordinates as separate fields (subFields)
  806.      If subFieldType is defined, it references a type, and a dynamic field
  807.      definition is created matching *___<typename>.  Alternately, if
  808.      subFieldSuffix is defined, that is used to create the subFields.
  809.      Example: if subFieldType="double", then the coordinates would be
  810.        indexed in fields myloc_0___double,myloc_1___double.
  811.      Example: if subFieldSuffix="_d" then the coordinates would be indexed
  812.        in fields myloc_0_d,myloc_1_d
  813.      The subFields are an implementation detail of the fieldType, and end
  814.      users normally should not need to know about them.
  815.     -->
  816.     <!-- In Drupal we only use prefixes for dynmaic fields. Tht might change in
  817.      the future but for now we keep this pattern.
  818.    -->
  819.     <fieldType name="point" class="solr.PointType" dimension="2" subFieldType="tdouble"/>
  820.  
  821.     <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
  822.     <!--<fieldType name="location" class="solr.LatLonType"  subFieldType="tdouble"/>-->
  823.  
  824.     <!-- An alternative geospatial field type new to Solr 4.  It supports multiValued and polygon shapes.
  825.      For more information about this and other Spatial fields new to Solr 4, see:
  826.      http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
  827.    -->
  828.     <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
  829.        geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers" />
  830.  
  831.     <!-- A Geohash is a compact representation of a latitude longitude pair in a single field.
  832.       See http://wiki.apache.org/solr/SpatialSearch
  833.     -->
  834.     <!--<fieldtype name="geohash" class="solr.GeoHashField"/>-->
  835.  
  836.   <!-- Spatial rectangle (bounding box) field. It supports most spatial predicates, and has
  837.   special relevancy modes: score=overlapRatio|area|area2D (local-param to the query).  DocValues is recommended for
  838.   relevancy. -->
  839.     <fieldType name="bbox" class="solr.BBoxField"
  840.               geo="true" distanceUnits="kilometers" numberType="_bbox_coord" />
  841.     <fieldType name="_bbox_coord" class="solr.TrieDoubleField" precisionStep="8" docValues="true" stored="false"/>
  842.  
  843.   <!-- Money/currency field type. See http://wiki.apache.org/solr/MoneyFieldType
  844.       Parameters:
  845.         defaultCurrency: Specifies the default currency if none specified. Defaults to "USD"
  846.         precisionStep:   Specifies the precisionStep for the TrieLong field used for the amount
  847.         providerClass:   Lets you plug in other exchange provider backend:
  848.                          solr.FileExchangeRateProvider is the default and takes one parameter:
  849.                            currencyConfig: name of an xml file holding exchange rates
  850.                          solr.OpenExchangeRatesOrgProvider uses rates from openexchangerates.org:
  851.                            ratesFileLocation: URL or path to rates JSON file (default latest.json on the web)
  852.                            refreshInterval: Number of minutes between each rates fetch (default: 1440, min: 60)
  853.  -->
  854. <!--  <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD" currencyConfig="currency.xml" /> -->
  855.  
  856.   <!-- Following is a dynamic way to include other fields, added by other contrib modules -->
  857.   &extrafields;
  858.  
  859. <!--
  860.  Enable the following only if you need backwards compatibility with
  861.  Drupal 6 or Drupal 7 versions of search_api or apachesolr,
  862.  e.g. if you are running a multi-site search that mixes
  863.  Drupal 8 and earlier versions.
  864. -->
  865. <!--
  866.  &legacyfields;
  867. -->
  868.  
  869.   <!-- Following is a dynamic way to include other types, added by other contrib modules -->
  870.   &extratypes;
  871.  
  872.   <!--
  873.    Enable the following only if you need backwards compatibility with
  874.    Drupal 6 or Drupal 7 versions of search_api or apachesolr,
  875.    e.g. if you are running a multi-site search that mixes
  876.    Drupal 8 and earlier versions.
  877.  -->
  878. <!--
  879.  &legacytypes;
  880. -->
  881.  
  882.   <!-- Field to use to determine and enforce document uniqueness.
  883.       Unless this field is marked with required="false", it will be a required field
  884.    -->
  885.   <uniqueKey>id</uniqueKey>
  886.   <defaultSearchField>keywords</defaultSearchField>
  887.  
  888.   <!-- Similarity is the scoring routine for each document vs. a query.
  889.       A custom Similarity or SimilarityFactory may be specified here, but
  890.       the default is fine for most applications.
  891.       For more info: http://wiki.apache.org/solr/SchemaXml#Similarity
  892.    -->
  893.   <!--
  894.     <similarity class="com.example.solr.CustomSimilarityFactory">
  895.       <str name="paramkey">param value</str>
  896.     </similarity>
  897.    -->
  898.  
  899. </schema>
Add Comment
Please, Sign In to add comment