| <?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. |
| --> |
| |
| <!-- This is a "kitchen sink" config file that tests can use. |
| When writting a new test, feel free to add *new* items (plugins, |
| config options, etc...) as long as they don't break any existing |
| tests. if you need to test something esoteric please add a new |
| "solrconfig-your-esoteric-purpose.xml" config file. |
| |
| Note in particular that this test is used by MinimalSchemaTest so |
| Anything added to this file needs to work correctly even if there |
| is now uniqueKey or defaultSearch Field. |
| --> |
| |
| <config> |
| |
| <jmx /> |
| |
| <!-- Used to specify an alternate directory to hold all index data. |
| It defaults to "index" if not present, and should probably |
| not be changed if replication is in use. --> |
| <dataDir>${solr.data.dir:}</dataDir> |
| |
| <!-- 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}"> |
| <double name="maxWriteMBPerSecDefault">1000000</double> |
| <double name="maxWriteMBPerSecFlush">2000000</double> |
| <double name="maxWriteMBPerSecMerge">3000000</double> |
| <double name="maxWriteMBPerSecRead">4000000</double> |
| </directoryFactory> |
| |
| <schemaFactory class="ClassicIndexSchemaFactory"/> |
| |
| <luceneMatchVersion>${tests.luceneMatchVersion:LATEST}</luceneMatchVersion> |
| |
| <xi:include href="solrconfig.snippet.randomindexconfig.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> |
| |
| <updateHandler class="solr.DirectUpdateHandler2"> |
| |
| <!-- autocommit pending docs if certain criteria are met |
| <autoCommit> |
| <maxDocs>10000</maxDocs> |
| <maxTime>3600000</maxTime> |
| </autoCommit> |
| --> |
| |
| <updateLog enable="${enable.update.log:true}"> |
| <str name="dir">${solr.ulog.dir:}</str> |
| </updateLog> |
| |
| <commitWithin> |
| <softCommit>${solr.commitwithin.softcommit:true}</softCommit> |
| </commitWithin> |
| |
| </updateHandler> |
| |
| <query> |
| <!-- Maximum number of clauses in a boolean query... can affect |
| range or wildcard queries that expand to big boolean |
| queries. An exception is thrown if exceeded. |
| --> |
| <maxBooleanClauses>${solr.max.booleanClauses:1024}</maxBooleanClauses> |
| |
| <!-- Cache specification for Filters or DocSets - unordered set of *all* documents |
| that match a particular query. |
| --> |
| <filterCache |
| size="512" |
| initialSize="512" |
| autowarmCount="2"/> |
| |
| <queryResultCache |
| size="512" |
| initialSize="512" |
| autowarmCount="2"/> |
| |
| <documentCache |
| size="512" |
| initialSize="512" |
| autowarmCount="0"/> |
| |
| <cache name="perSegFilter" |
| size="10" |
| initialSize="0" |
| autowarmCount="10" /> |
| |
| <!-- If true, stored fields that are not requested will be loaded lazily. |
| --> |
| <enableLazyFieldLoading>true</enableLazyFieldLoading> |
| |
| <!-- |
| |
| <cache name="myUserCache" |
| size="4096" |
| initialSize="1024" |
| autowarmCount="1024" |
| regenerator="MyRegenerator" |
| /> |
| --> |
| |
| <!-- |
| <useFilterForSortedQuery>true</useFilterForSortedQuery> |
| --> |
| |
| <queryResultWindowSize>10</queryResultWindowSize> |
| |
| <!-- boolToFilterOptimizer converts boolean clauses with zero boost |
| into cached filters if the number of docs selected by the clause exceeds |
| the threshold (represented as a fraction of the total index) |
| --> |
| <boolTofilterOptimizer enabled="false" cacheSize="32" threshold=".05"/> |
| |
| <!-- a newSearcher event is fired whenever a new searcher is being prepared |
| and there is a current searcher handling requests (aka registered). --> |
| <!-- QuerySenderListener takes an array of NamedList and executes a |
| local query request for each NamedList in sequence. --> |
| <!-- |
| <listener event="newSearcher" class="solr.QuerySenderListener"> |
| <arr name="queries"> |
| <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst> |
| <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst> |
| </arr> |
| </listener> |
| --> |
| |
| <!-- a firstSearcher event is fired whenever a new searcher is being |
| prepared but there is no current registered searcher to handle |
| requests or to gain prewarming data from. --> |
| <!-- |
| <listener event="firstSearcher" class="solr.QuerySenderListener"> |
| <arr name="queries"> |
| <lst> <str name="q">fast_warm</str> <str name="start">0</str> <str name="rows">10</str> </lst> |
| </arr> |
| </listener> |
| --> |
| |
| </query> |
| |
| <queryResponseWriter name="xml" default="true" |
| class="solr.XMLResponseWriter" /> |
| |
| |
| <!-- An alternate set representation that uses an integer hash to store filters (sets of docids). |
| If the set cardinality <= maxSize elements, then HashDocSet will be used instead of the bitset |
| based HashBitset. --> |
| |
| <!-- requestHandler plugins. |
| --> |
| <requestHandler name="/select" class="solr.SearchHandler"> |
| <bool name="httpCaching">true</bool> |
| </requestHandler> |
| |
| <searchComponent class="solr.HighlightComponent" name="highlight"> |
| <highlighting> |
| <!-- Configure the standard fragmenter --> |
| <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" default="true"> |
| <lst name="defaults"> |
| <int name="hl.fragsize">100</int> |
| </lst> |
| </fragmenter> |
| |
| <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter"> |
| <lst name="defaults"> |
| <int name="hl.fragsize">70</int> |
| </lst> |
| </fragmenter> |
| |
| <!-- Configure the standard formatter --> |
| <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" default="true"> |
| <lst name="defaults"> |
| <str name="hl.simple.pre"><![CDATA[<em>]]></str> |
| <str name="hl.simple.post"><![CDATA[</em>]]></str> |
| </lst> |
| </formatter> |
| |
| <!-- Configure the standard fragListBuilder --> |
| <fragListBuilder name="simple" class="org.apache.solr.highlight.SimpleFragListBuilder" default="true"/> |
| |
| <!-- Configure the standard fragmentsBuilder --> |
| <fragmentsBuilder name="simple" class="org.apache.solr.highlight.SimpleFragmentsBuilder" default="true"/> |
| <fragmentsBuilder name="scoreOrder" class="org.apache.solr.highlight.ScoreOrderFragmentsBuilder"/> |
| |
| <boundaryScanner name="simple" class="solr.highlight.SimpleBoundaryScanner" default="true"> |
| <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"> |
| <str name="hl.bs.type">WORD</str> |
| <str name="hl.bs.language">en</str> |
| <str name="hl.bs.country">US</str> |
| </lst> |
| </boundaryScanner> |
| </highlighting> |
| </searchComponent> |
| |
| <requestDispatcher> |
| <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="-1" /> |
| <httpCaching lastModifiedFrom="openTime" etagSeed="Solr" never304="false"> |
| <cacheControl>max-age=30, public</cacheControl> |
| </httpCaching> |
| </requestDispatcher> |
| |
| <admin> |
| <defaultQuery>solr</defaultQuery> |
| <gettableFiles>solrconfig.xml schema.xml</gettableFiles> |
| </admin> |
| |
| <!-- test getting system property --> |
| <propTest attr1="${solr.test.sys.prop1}-$${literal}" |
| attr2="${non.existent.sys.prop:default-from-config}">prefix-${solr.test.sys.prop2}-suffix</propTest> |
| |
| <queryParser name="count" class="org.apache.solr.search.AnalyticsTestQParserPlugin"/> |
| |
| <updateRequestProcessorChain name="uniq-fields"> |
| <processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory"> |
| <arr name="fieldName"> |
| <str>uniq</str> |
| <str>uniq2</str> |
| <str>uniq3</str> |
| </arr> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="distrib-dup-test-chain-explicit"> |
| <!-- explicit test using processors before and after distrib --> |
| <processor class="solr.RegexReplaceProcessorFactory"> |
| <str name="fieldName">regex_dup_A_s</str> |
| <str name="pattern">x</str> |
| <str name="replacement">x_x</str> |
| </processor> |
| <processor class="solr.DistributedUpdateProcessorFactory" /> |
| <processor class="solr.RegexReplaceProcessorFactory"> |
| <str name="fieldName">regex_dup_B_s</str> |
| <str name="pattern">x</str> |
| <str name="replacement">x_x</str> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="distrib-dup-test-chain-implicit"> |
| <!-- implicit test w/o distrib declared--> |
| <processor class="solr.RegexReplaceProcessorFactory"> |
| <str name="fieldName">regex_dup_A_s</str> |
| <str name="pattern">x</str> |
| <str name="replacement">x_x</str> |
| </processor> |
| <processor class="solr.RegexReplaceProcessorFactory"> |
| <str name="fieldName">regex_dup_B_s</str> |
| <str name="pattern">x</str> |
| <str name="replacement">x_x</str> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| </config> |