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

<config>
  <xi:include href="solrconfig.snippet.randomindexconfig.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <!--  The DirectoryFactory to use for indexes.
        solr.StandardDirectoryFactory, the default, is filesystem based.
        solr.RAMDirectoryFactory is memory based and not persistent. -->
  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

  <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>

  <updateHandler class="solr.DirectUpdateHandler2">
  </updateHandler>

  <requestHandler name="standard" class="solr.StandardRequestHandler" />

  <!-- Suggest component -->
  <searchComponent class="solr.SpellCheckComponent" name="suggest_jaspell">
    <lst name="spellchecker">
      <str name="name">suggest</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.jaspell.JaspellLookup</str>
      <str name="field">suggest</str>
      <str name="storeDir">suggest</str>
      <str name="buildOnCommit">true</str>

      <!-- Suggester properties -->
      <float name="threshold">0.0</float>
    </lst>
  </searchComponent>

  <!-- TSTLookup suggest component -->
  <searchComponent class="solr.SpellCheckComponent" name="suggest_tst">
    <lst name="spellchecker">
      <str name="name">suggest_tst</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
      <str name="field">suggest</str>
      <str name="storeDir">suggest_tst</str>
      <str name="buildOnCommit">true</str>

      <!-- Suggester properties -->
      <float name="threshold">0.0</float>
    </lst>
  </searchComponent>

  <!-- FSTLookup suggest component -->
  <searchComponent class="solr.SpellCheckComponent" name="suggest_fst">
    <lst name="spellchecker">
      <str name="name">suggest_fst</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str>
      <str name="field">suggest</str>
      <str name="storeDir">suggest_fst</str>
      <str name="buildOnCommit">true</str>

      <!-- Suggester properties -->
      <int name="weightBuckets">5</int>
      <bool name="exactMatchFirst">true</bool>
    </lst>
  </searchComponent>
  
  <!-- WFSTLookup suggest component -->
  <searchComponent class="solr.SpellCheckComponent" name="suggest_wfst">
    <lst name="spellchecker">
      <str name="name">suggest_wfst</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
      <str name="field">suggest</str>
      <str name="storeDir">suggest_wfst</str>
      <str name="buildOnCommit">true</str>

      <!-- Suggester properties -->
      <bool name="exactMatchFirst">true</bool>
    </lst>
  </searchComponent>

  <!--  The default (jaspell) -->
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
    <lst name="defaults">
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest</str>
      <str name="spellcheck.collate">true</str>
    </lst>
    <arr name="components">
      <str>suggest_jaspell</str>
    </arr>
  </requestHandler>

  <!--  tst (ternary tree based) -->
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest_tst">
    <lst name="defaults">
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest_tst</str>
      <str name="spellcheck.collate">true</str>
    </lst>
    <arr name="components">
      <str>suggest_tst</str>
    </arr>
  </requestHandler>
  
  <!--  fst (finite state automaton based) -->
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest_fst">
    <lst name="defaults">
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest_fst</str>
      <str name="spellcheck.collate">false</str>
    </lst>
    <arr name="components">
      <str>suggest_fst</str>
    </arr>
  </requestHandler>
  
  <!--  wfst (finite state automaton based) -->
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest_wfst">
    <lst name="defaults">
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest_wfst</str>
      <str name="spellcheck.collate">false</str>
    </lst>
    <arr name="components">
      <str>suggest_wfst</str>
    </arr>
  </requestHandler>
  
</config>
