<?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.
-->

<!-- Test schema file for CollationField -->

<schema name="test" version="1.0">
  <fieldType name="string" class="solr.StrField" omitNorms="true" positionIncrementGap="0"/>

  <!-- basic text field -->
  <fieldType name="text" class="solr.TextField">
    <analyzer>
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

  <fieldType name="sort_ar_t" class="solr.CollationField" language="ar"/>
  <fieldType name="sort_de_t" class="solr.CollationField" language="de" strength="primary"/>
  <fieldType name="sort_tr_canon_t" class="solr.CollationField" language="tr" strength="primary"
             decomposition="canonical"/>
  <fieldType name="sort_zh_full_t" class="solr.CollationField" language="zh" strength="identical" decomposition="full"/>
  <fieldType name="sort_da_t" class="solr.CollationField" language="da" strength="primary"/>
  <fieldType name="sort_custom_t" class="solr.CollationField" custom="customrules.dat" strength="primary"/>

  <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="false"/>
  <field name="text" type="text" indexed="true" stored="false"/>
  <field name="sort_ar" type="sort_ar_t" indexed="false" stored="false" multiValued="false" docValues="true"/>
  <field name="sort_de" type="sort_de_t" indexed="false" stored="false" multiValued="false" docValues="true"/>
  <field name="sort_tr_canon" type="sort_tr_canon_t" indexed="false" stored="false" multiValued="true"
         docValues="true"/>
  <field name="sort_zh_full" type="sort_zh_full_t" indexed="false" stored="false" multiValued="false" docValues="true"/>
  <field name="sort_da" type="sort_da_t" indexed="false" stored="false" multiValued="false" docValues="true"/>
  <field name="sort_custom" type="sort_custom_t" indexed="false" stored="false" multiValued="true" docValues="true"/>

  <uniqueKey>id</uniqueKey>

  <!-- copy our text to some sort fields with different orders -->
  <copyField source="text" dest="sort_ar"/>
  <copyField source="text" dest="sort_de"/>
  <copyField source="text" dest="sort_tr_canon"/>
  <copyField source="text" dest="sort_zh_full"/>
  <copyField source="text" dest="sort_da"/>
  <copyField source="text" dest="sort_custom"/>
</schema>
