<?xml version="1.0" encoding="UTF-8" ?>
<!--
 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="tiny" version="1.1">
  <fieldType name="string" class="solr.StrField"/>


  <field name="id" type="string" indexed="true" stored="true" required="true"/>
  <field name="text" type="text" indexed="true" stored="true"/>
  <dynamicField name="*_t" type="text" indexed="true" stored="true"/>
  <dynamicField name="*" type="string" indexed="true" stored="true"/>

  <uniqueKey>id</uniqueKey>

  <fieldType name="text" class="solr.TextField">
    <analyzer>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

  <similarity class="${solr.similarity:solr.SchemaSimilarityFactory}"/>
</schema>
