<?xml version=“1.0” encoding=“UTF-8” ?> <config>

<!--for Sematext Monitoring-->
<jmx />

<!-- NOTE: various comments and unused configuration possibilities have been purged
     from this file.  Please refer to http://wiki.apache.org/solr/SolrConfigXml,
     as well as the default solrconfig file included with Solr -->

<abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>

<luceneMatchVersion>7.4.0</luceneMatchVersion>

<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>

<!-- solr lib dirs -->
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />

<!-- using default data directory here, for the vanilla Solr installation-->
<dataDir>${solr.data.dir:}</dataDir>

<codecFactory class="solr.SchemaCodecFactory"/>

<schemaFactory class="ClassicIndexSchemaFactory"/>

<indexConfig>
  <!-- native is the default, but let's be safe -->
  <lockType>${solr.lock.type:native}</lockType>

  <!-- in-memory buffer of 200MB per shard. If it fills up, 
   a hard commit is done, but the transaction log isn't cleared up,
   so we still have to rely on the hard commit policy -->
  <ramBufferSizeMB>200</ramBufferSizeMB>
</indexConfig>  

<updateHandler class="solr.DirectUpdateHandler2">

  <!-- this is our transaction log for SolrCloud-->
  <updateLog>
    <str name="dir">${solr.ulog.dir:}</str>
    <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
  </updateLog>

  <!-- hard commit every 10 minutes or 100K docs, whichever comes first -->
  <autoCommit>
    <maxTime>600000</maxTime>
    <maxDocs>100000</maxDocs>
    <openSearcher>false</openSearcher>
  </autoCommit>

  <!-- soft commit every 20 minutes -->
  <autoSoftCommit>
    <maxTime>1200000</maxTime>
  </autoSoftCommit>

</updateHandler>

<updateProcessor class="solr.processor.SignatureUpdateProcessorFactory" name="add_hash_id">
  <bool name="enabled">true</bool>
  <str name="signatureField">hashed_id_si</str>
  <bool name="overwriteDupes">false</bool>
  <str name="fields">id</str>
  <str name="signatureClass">solr.processor.Lookup3Signature</str>
</updateProcessor>

<updateRequestProcessorChain name="cloud" processor="add_hash_id" default="true">
  <processor class="solr.LogUpdateProcessorFactory"/>
  <processor class="solr.DistributedUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>

<!-- config for the admin interface -->
<admin>
  <defaultQuery>*:*</defaultQuery>
</admin>

<requestHandler name="search" class="solr.SearchHandler" default="true">
  <!-- default values for query parameters can be specified, these
       will be overridden by parameters in the request
    -->
   <lst name="defaults">
     <str name="defType">edismax</str>
     <str name="echoParams">explicit</str>
     <int name="rows">10</int>
     <str name="q.alt">*:*</str>
     <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
     <int name="qs">1</int>
     <int name="ps">2</int>
     <float name="tie">0.01</float>

     <!-- this qf and pf are used by default, if not otherwise specified by
          client. The default blacklight will use these for the
          "keywords" search. See the author_qf/author_pf, title_qf, etc
          below, which the default blacklight will specify for
          those searches. You may also be interested in:
          http://wiki.apache.org/solr/LocalParams
     -->
     <str name="qf">
       id
       title_245ab_unstem_search^100000
       title_245ab_tsim^25000
       title_addl_unstem_search^5000
       title_addl_tsim^2500
       title_related_unstem_search^1500
       title_related_tsim^1250
       subject_topic_unstem_search^1000
       subject_unstem_search^750
       subject_topic_facet_sim^625
       subject_tsim^500
       author_unstem_search^250
       author_addl_unstem_search^250
       author_tsim^100
       author_addl_tsim^50
       subject_addl_unstem_search^250
       subject_addl_tsim^50
       series_title_unstem_search^25
       series_title_tsim^10
       isbn_sim
       issn_sim
       toc_ssim
       notes_summary_ssim
       all_text_timv
     </str>
     <str name="pf">
       title_245ab_unstem_search^1000000
       title_245ab_tsim^250000
       title_addl_unstem_search^50000
       title_addl_tsim^25000
       title_related_unstem_search^15000
       title_related_tsim^12500
       subject_topic_unstem_search^10000
       subject_unstem_search^7500
       subject_topic_facet_sim^6250
       subject_tsim^5000
       author_unstem_search^2500
       author_addl_unstem_search^2500
       author_tsim^1000
       author_addl_tsim^500
       subject_addl_unstem_search^2500
       subject_addl_tsim^500
       series_title_unstem_search^250
       series_title_tsim^100
       toc_ssim^50
       notes_summary_ssim^50
       all_text_timv^10
     </str>
     <str name="author_qf">
       author_unstem_search^200
       author_addl_unstem_search^50
       author_tsim^20
       author_addl_tsim
     </str>
     <str name="author_pf">
       author_unstem_search^2000
       author_addl_unstem_search^500
       author_tsim^200
       author_addl_tsim^10
     </str>
     <str name="title_qf">
       title_unstem_search^75000
       title_245ab_unstem_search^50000
       title_addl_unstem_search^10000
       title_tsim^7500
       title_245ab_tsim^5000
       title_addl_tsim^100
       title_added_entry_unstem_search^50
       title_added_entry_tsim^10
       series_title_unstem_search^5
       series_title_tsim
     </str>
     <str name="title_pf">
       title_unstem_search^750000
       title_245ab_unstem_search^500000
       title_addl_unstem_search^100000
       title_tsim^75000
       title_245ab_tsim^50000
       title_addl_tsim^1000
       title_added_entry_unstem_search^500
       title_added_entry_tsim^100
       series_title_unstem_search^50
       series_title_tsim^10
     </str>
     <str name="subject_qf">
       subject_topic_unstem_search^200
       subject_unstem_search^125
       subject_topic_facet_sim^100
       subject_tsim^50
       subject_addl_unstem_search^10
       subject_addl_tsim
     </str>
     <str name="subject_pf">
       subject_topic_unstem_search^2000
       subject_unstem_search^1250
       subject_tsim^1000
       subject_topic_facet_sim^500
       subject_addl_unstem_search^100
       subject_addl_tsim^10
     </str>

     <!-- for advanced search number text box -->
     <str name="number_qf">
       id
       isbn_sim
       issn_sim
       oclc_number_ssim
       lccn_ssim
     </str>

     <!-- list fields to be displayed in the search results page -->
     <str name="fl">
       id,
       score,
       title_display_ssm,
       title_latin_display_ssm,
       author_person_display_ssm,
       author_corp_display_ssm,
       author_meeting_display_ssm,
       format,
       overall_imprint_display_ssm,
       publication_display_ssm,
       edition_display_ssm,
       full_links_struct,
       isbn_valid_ssm,
       oclc_number_ssim,
       lccn_ssim
     </str>

     <!-- list fields to be displayed as facets -->
     <str name="facet">true</str>
     <str name="facet.mincount">1</str>
     <str name="facet.field">access_facet</str>
     <str name="facet.field">format</str>
     <str name="facet.field">campus_facet</str>
     <str name="facet.field">up_library_facet</str>
     <str name="facet.field">pub_date_itsi</str>
     <str name="facet.field">language_facet</str>
     <str name="facet.field">subject_topic_facet</str>
     <str name="facet.field">genre_facet</str>
     <str name="facet.field">media_type_facet</str>
     <str name="facet.field">lc_1letter_facet</str>
     <str name="facet.field">lc_rest_facet</str>
   </lst>
</requestHandler>

<!-- for requests to get a single document; use id=666 instead of q=id:666 -->
<requestHandler name="document" class="solr.SearchHandler" >
  <lst name="defaults">
    <str name="echoParams">all</str>
    <str name="fl">*,
      bound_with_title_ssm: [json]</str>
    <str name="rows">1</str>
    <str name="q">{!term f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
  </lst>
</requestHandler>

<requestHandler name="standard" class="solr.SearchHandler">
  <lst name="defaults">
    <str name="echoParams">explicit</str>
    <str name="defType">lucene</str>
  </lst>
</requestHandler>

<requestDispatcher handleSelect="true" >
  <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
</requestDispatcher>

<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />

<query>
  <filterCache class="solr.FastLRUCache"
               size="1000"
               initialSize="1000"
               autowarmCount="100"/>

  <queryResultCache class="solr.LRUCache"
                    size="1000"
                    initialSize="1000"
                    autowarmCount="100"/>

  <documentCache class="solr.LRUCache"
                 size="1000"
                 initialSize="1000"/>

  <enableLazyFieldLoading>true</enableLazyFieldLoading>

  <queryResultWindowSize>100</queryResultWindowSize>
  <queryResultMaxDocsCached>500</queryResultMaxDocsCached>
  <useColdSearcher>false</useColdSearcher>
</query>

</config>