<?xml version="1.0" ?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<schema name="doc-values-for-Join" version="1.6">
  <!-- attribute "name" is the name of this schema and is only used for display purposes.
       Applications should change this to reflect the nature of the search collection.
       version="x.y" is Solr's version number for the schema syntax and semantics.  It should
       not normally be changed by applications.
       1.0: multiValued attribute did not exist, all fields are multiValued by nature
       1.1: multiValued attribute introduced, false by default 
       1.2: omitTermFreqAndPositions attribute introduced, true by default except for text fields.
       1.3: removed optional field compress feature
       1.4: default auto-phrase (QueryParser feature) to off
       1.5: omitNorms defaults to true for primitive field types (int, float, boolean, string...)
       1.6: useDocValuesAsStored defaults to true.
     -->
  <fieldType name="int" class="${solr.tests.IntegerFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
  <fieldType name="float" class="${solr.tests.FloatFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
  <fieldType name="long" class="${solr.tests.LongFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
  <fieldType name="double" class="${solr.tests.DoubleFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
  <fieldType name="date" class="${solr.tests.DateFieldType}" docValues="${solr.tests.numeric.dv}" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
  <fieldtype name="string" class="solr.StrField" sortMissingLast="true" useDocValuesAsStored="false"/>
  <fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
    <analyzer type="index">
      <tokenizer class="solr.MockTokenizerFactory"/>
      <filter class="solr.StopFilterFactory"
              ignoreCase="true"
              words="stopwords.txt"
      />
      <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1"
              catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.FlattenGraphFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.MockTokenizerFactory"/>
      <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.StopFilterFactory"
              ignoreCase="true"
              words="stopwords.txt"
      />
      <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0"
              catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
      <filter class="solr.PorterStemFilterFactory"/>
    </analyzer>
  </fieldType>

  <field name="id" type="string" indexed="true" stored="true" docValues="false" multiValued="false" required="true"/>
  <field name="id_dv" type="string" indexed="false" stored="false" docValues="true" multiValued="false"
         required="true"/>
  <dynamicField name="*_i" type="int" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_i_dv" type="int" indexed="true" stored="true" docValues="true"/>
  <dynamicField name="*_is" type="int" indexed="true" stored="false" docValues="false" multiValued="true"/>
  <dynamicField name="*_is_dv" type="int" indexed="true" stored="true" docValues="true" multiValued="true"/>
  <dynamicField name="*_s" type="string" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_s_dv" type="string" indexed="true" stored="true" docValues="true"/>
  <dynamicField name="*_ss" type="string" indexed="true" stored="false" docValues="false" multiValued="true"/>
  <dynamicField name="*_ss_dv" type="string" indexed="true" stored="true" docValues="true" multiValued="true"/>
  <dynamicField name="*_f" type="float" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_f_dv" type="float" indexed="true" stored="true" docValues="true"/>
  <dynamicField name="*_fs_dv" type="float" indexed="true" stored="true" docValues="true" multiValued="true"/>
  <dynamicField name="*_l" type="long" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_l_dv" type="long" indexed="true" stored="false" docValues="true"/>
  <dynamicField name="*_ls_dv" type="long" indexed="true" stored="false" docValues="true" multiValued="true"/>
  <dynamicField name="*_d" type="double" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_d_dv" type="double" indexed="true" stored="false" docValues="true"/>
  <dynamicField name="*_ds_dv" type="double" indexed="true" stored="false" docValues="true" multiValued="true"/>
  <dynamicField name="*_dt" type="date" indexed="true" stored="false" docValues="false"/>
  <dynamicField name="*_dt_dv" type="date" indexed="true" stored="false" docValues="true"/>
  <dynamicField name="*_dts_dv" type="date" indexed="true" stored="false" docValues="true" multiValued="true"/>
  <dynamicField name="*_t" type="text" indexed="true" stored="true"/>


  <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>


  <uniqueKey>id</uniqueKey>

  <copyField source="*_i" dest="*_i_dv"/>
  <copyField source="*_f" dest="*_f_dv"/>
  <copyField source="*_is" dest="*_is_dv"/>
  <copyField source="*_s" dest="*_s_dv"/>
  <copyField source="*_ss" dest="*_ss_dv"/>
  <copyField source="id" dest="id_dv"/>

</schema>
