| <?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. |
| --> |
| <config> |
| |
| <luceneMatchVersion>6.6.6</luceneMatchVersion> |
| |
| <dataDir>${solr.data.dir:}</dataDir> |
| |
| <directoryFactory name="DirectoryFactory" |
| class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"> |
| |
| </directoryFactory> |
| |
| <codecFactory class="solr.SchemaCodecFactory"/> |
| |
| <schemaFactory class="ClassicIndexSchemaFactory"/> |
| |
| <indexConfig> |
| |
| <lockType>${solr.lock.type:native}</lockType> |
| |
| <infoStream>false</infoStream> |
| </indexConfig> |
| |
| <jmx /> |
| |
| <updateHandler class="solr.DirectUpdateHandler2"> |
| |
| <updateLog> |
| <str name="dir">${solr.ulog.dir:}</str> |
| </updateLog> |
| |
| <autoCommit> |
| <maxTime>${solr.autoCommit.maxTime:15000}</maxTime> |
| <openSearcher>false</openSearcher> |
| </autoCommit> |
| |
| <autoSoftCommit> |
| <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime> |
| </autoSoftCommit> |
| |
| </updateHandler> |
| |
| |
| <query> |
| |
| <maxBooleanClauses>1024</maxBooleanClauses> |
| |
| |
| <filterCache class="solr.FastLRUCache" |
| size="4096" |
| initialSize="1024" |
| autowarmCount="512"/> |
| |
| <queryResultCache class="solr.FastLRUCache" |
| size="40960" |
| initialSize="4096" |
| autowarmCount="2048"/> |
| |
| <documentCache class="solr.LRUCache" |
| size="40960" |
| initialSize="1024" |
| autowarmCount="0"/> |
| |
| <cache name="perSegFilter" |
| class="solr.search.LRUCache" |
| size="10" |
| initialSize="0" |
| autowarmCount="10" |
| regenerator="solr.NoOpRegenerator" /> |
| |
| |
| <fieldValueCache class="solr.FastLRUCache" |
| size="4096" |
| autowarmCount="1024" |
| showItems="32" /> |
| |
| <enableLazyFieldLoading>true</enableLazyFieldLoading> |
| |
| <queryResultWindowSize>20</queryResultWindowSize> |
| |
| <queryResultMaxDocsCached>200</queryResultMaxDocsCached> |
| |
| <useColdSearcher>false</useColdSearcher> |
| |
| <maxWarmingSearchers>2</maxWarmingSearchers> |
| |
| </query> |
| |
| |
| <requestDispatcher handleSelect="false" > |
| |
| <requestParsers enableRemoteStreaming="true" |
| multipartUploadLimitInKB="2048000" |
| formdataUploadLimitInKB="2048" |
| addHttpRequestToContext="false"/> |
| |
| <httpCaching never304="true" /> |
| |
| </requestDispatcher> |
| |
| <requestHandler name="/select" class="solr.SearchHandler"> |
| <lst name="defaults"> |
| <str name="echoParams">none</str> |
| <str name="wt">json</str> |
| <int name="rows">10</int> |
| <str name="df">catch_all</str> |
| </lst> |
| |
| <arr name="last-components"> |
| </arr> |
| </requestHandler> |
| |
| <!-- A request handler that returns indented JSON by default --> |
| <requestHandler name="/query" class="solr.SearchHandler"> |
| <lst name="defaults"> |
| <str name="echoParams">explicit</str> |
| <str name="wt">json</str> |
| <str name="indent">true</str> |
| <str name="df">text</str> |
| </lst> |
| </requestHandler> |
| |
| |
| <requestHandler name="/get" class="solr.RealTimeGetHandler"> |
| <lst name="defaults"> |
| <str name="omitHeader">true</str> |
| <str name="wt">json</str> |
| <str name="indent">true</str> |
| </lst> |
| </requestHandler> |
| |
| <requestHandler name="/analysis/field" |
| startup="lazy" |
| class="solr.FieldAnalysisRequestHandler" /> |
| |
| <requestHandler name="/mlt" class="solr.MoreLikeThisHandler"> |
| </requestHandler> |
| |
| <requestHandler name="/analysis/document" |
| class="solr.DocumentAnalysisRequestHandler" |
| startup="lazy" /> |
| |
| <!-- <requestHandler name="/admin/"--> |
| <!-- class="solr.admin.AdminHandlers" />--> |
| |
| <requestHandler name="/admin/ping" class="solr.PingRequestHandler"> |
| <lst name="invariants"> |
| <str name="q">solrpingquery</str> |
| </lst> |
| <lst name="defaults"> |
| <str name="echoParams">all</str> |
| </lst> |
| </requestHandler> |
| |
| |
| <searchComponent name="suggest" class="solr.SuggestComponent"> |
| <lst name="suggester"> |
| <str name="name">default</str> |
| <str name="lookupImpl">FuzzyLookupFactory</str> |
| <str name="dictionaryImpl">DocumentDictionaryFactory</str> |
| <str name="field">:suggest</str> |
| <str name="weightField">:suggest-weight</str> |
| <str name="suggestAnalyzerFieldType">string</str> |
| <str name="buildOnStartup">true</str> |
| </lst> |
| </searchComponent> |
| |
| <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy"> |
| <lst name="defaults"> |
| <str name="suggest">true</str> |
| <str name="suggest.count">10</str> |
| </lst> |
| <arr name="components"> |
| <str>suggest</str> |
| </arr> |
| </requestHandler> |
| |
| |
| <searchComponent name="spellcheck" class="solr.SpellCheckComponent"> |
| |
| <str name="queryAnalyzerFieldType">spellcheck</str> |
| |
| <!-- a spellchecker built from a field of the main index --> |
| <lst name="spellchecker"> |
| <str name="name">default</str> |
| <str name="field">:spellcheck</str> |
| <str name="classname">solr.DirectSolrSpellChecker</str> |
| <str name="distanceMeasure">internal</str> |
| <!-- minimum accuracy needed to be considered a valid spellcheck suggestion --> |
| <float name="accuracy">0.5</float> |
| <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 --> |
| <int name="maxEdits">2</int> |
| <!-- the minimum shared prefix when enumerating terms --> |
| <int name="minPrefix">1</int> |
| <!-- maximum number of inspections per result. --> |
| <int name="maxInspections">5</int> |
| <!-- minimum length of a query term to be considered for correction --> |
| <int name="minQueryLength">4</int> |
| <!-- maximum threshold of documents a query term can appear to be considered for correction --> |
| <float name="maxQueryFrequency">0.01</float> |
| </lst> |
| |
| </searchComponent> |
| |
| <requestHandler name="/spellcheck" class="solr.SearchHandler" startup="lazy"> |
| <lst name="defaults"> |
| <str name="spellcheck.dictionary">default</str> |
| <str name="spellcheck">on</str> |
| <str name="spellcheck.extendedResults">true</str> |
| <str name="spellcheck.count">10</str> |
| <str name="spellcheck.alternativeTermCount">5</str> |
| <str name="spellcheck.maxResultsForSuggest">5</str> |
| <str name="spellcheck.collate">true</str> |
| <str name="spellcheck.collateExtendedResults">true</str> |
| <str name="spellcheck.maxCollationTries">10</str> |
| <str name="spellcheck.maxCollations">5</str> |
| </lst> |
| <arr name="last-components"> |
| <str>spellcheck</str> |
| </arr> |
| </requestHandler> |
| |
| |
| <searchComponent class="solr.HighlightComponent" name="highlight"> |
| <highlighting> |
| <!-- Configure the standard fragmenter --> |
| <!-- This could most likely be commented out in the "default" case --> |
| <fragmenter name="gap" |
| default="true" |
| class="solr.highlight.GapFragmenter"> |
| <lst name="defaults"> |
| <int name="hl.fragsize">100</int> |
| </lst> |
| </fragmenter> |
| |
| <!-- A regular-expression-based fragmenter |
| (for sentence extraction) |
| --> |
| <fragmenter name="regex" |
| class="solr.highlight.RegexFragmenter"> |
| <lst name="defaults"> |
| <!-- slightly smaller fragsizes work better because of slop --> |
| <int name="hl.fragsize">70</int> |
| <!-- allow 50% slop on fragment sizes --> |
| <float name="hl.regex.slop">0.5</float> |
| <!-- a basic sentence pattern --> |
| <str name="hl.regex.pattern">[-\w |
| ,/\n\"']{20,200} |
| </str> |
| </lst> |
| </fragmenter> |
| |
| <!-- Configure the standard formatter --> |
| <formatter name="html" |
| default="true" |
| class="solr.highlight.HtmlFormatter"> |
| <lst name="defaults"> |
| <str name="hl.simple.pre"><![CDATA[<em>]]></str> |
| <str name="hl.simple.post"><![CDATA[</em>]]></str> |
| </lst> |
| </formatter> |
| |
| <!-- Configure the standard encoder --> |
| <encoder name="html" |
| class="solr.highlight.HtmlEncoder"/> |
| |
| <!-- Configure the standard fragListBuilder --> |
| <fragListBuilder name="simple" |
| class="solr.highlight.SimpleFragListBuilder"/> |
| |
| <!-- Configure the single fragListBuilder --> |
| <fragListBuilder name="single" |
| class="solr.highlight.SingleFragListBuilder"/> |
| |
| <!-- Configure the weighted fragListBuilder --> |
| <fragListBuilder name="weighted" |
| default="true" |
| class="solr.highlight.WeightedFragListBuilder"/> |
| |
| <!-- default tag FragmentsBuilder --> |
| <fragmentsBuilder name="default" |
| default="true" |
| class="solr.highlight.ScoreOrderFragmentsBuilder"> |
| <!-- |
| <lst name="defaults"> |
| <str name="hl.multiValuedSeparatorChar">/</str> |
| </lst> |
| --> |
| </fragmentsBuilder> |
| |
| <!-- multi-colored tag FragmentsBuilder --> |
| <fragmentsBuilder name="colored" |
| class="solr.highlight.ScoreOrderFragmentsBuilder"> |
| <lst name="defaults"> |
| <str name="hl.tag.pre"><![CDATA[ |
| <b style="background:yellow">,<b style="background:lawgreen">, |
| <b style="background:aquamarine">,<b style="background:magenta">, |
| <b style="background:palegreen">,<b style="background:coral">, |
| <b style="background:wheat">,<b style="background:khaki">, |
| <b style="background:lime">,<b style="background:deepskyblue">]]></str> |
| <str name="hl.tag.post"><![CDATA[</b>]]></str> |
| </lst> |
| </fragmentsBuilder> |
| |
| <boundaryScanner name="default" |
| default="true" |
| class="solr.highlight.SimpleBoundaryScanner"> |
| <lst name="defaults"> |
| <str name="hl.bs.maxScan">10</str> |
| <str name="hl.bs.chars">.,!? 	 </str> |
| </lst> |
| </boundaryScanner> |
| |
| <boundaryScanner name="breakIterator" |
| class="solr.highlight.BreakIteratorBoundaryScanner"> |
| <lst name="defaults"> |
| <!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE --> |
| <str name="hl.bs.type">WORD</str> |
| <!-- language and country are used when constructing Locale object. --> |
| <!-- And the Locale object will be used when getting instance of BreakIterator --> |
| <str name="hl.bs.language">en</str> |
| <str name="hl.bs.country">US</str> |
| </lst> |
| </boundaryScanner> |
| </highlighting> |
| </searchComponent> |
| |
| |
| <queryResponseWriter name="json" class="solr.JSONResponseWriter"> |
| <str name="content-type">text/plain; charset=UTF-8</str> |
| </queryResponseWriter> |
| |
| <admin> |
| <defaultQuery>*:*</defaultQuery> |
| </admin> |
| |
| </config> |