"Fossies" - the Fresh Open Source Software Archive

Member "solr-8.4.1/solr/core/src/test-files/solr/configsets/_default/conf/solrconfig.xml" (10 Jan 2020, 49058 Bytes) of package /linux/www/solr-8.4.1-src.tgz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) XML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "solrconfig.xml": 8.4.0_vs_8.4.1.

    1 <?xml version="1.0" encoding="UTF-8" ?>
    2 <!--
    3  Licensed to the Apache Software Foundation (ASF) under one or more
    4  contributor license agreements.  See the NOTICE file distributed with
    5  this work for additional information regarding copyright ownership.
    6  The ASF licenses this file to You under the Apache License, Version 2.0
    7  (the "License"); you may not use this file except in compliance with
    8  the License.  You may obtain a copy of the License at
    9 
   10      http://www.apache.org/licenses/LICENSE-2.0
   11 
   12  Unless required by applicable law or agreed to in writing, software
   13  distributed under the License is distributed on an "AS IS" BASIS,
   14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   15  See the License for the specific language governing permissions and
   16  limitations under the License.
   17 -->
   18 
   19 <!--
   20      For more details about configurations options that may appear in
   21      this file, see http://wiki.apache.org/solr/SolrConfigXml.
   22 -->
   23 <config>
   24   <!-- In all configuration below, a prefix of "solr." for class names
   25        is an alias that causes solr to search appropriate packages,
   26        including org.apache.solr.(search|update|request|core|analysis)
   27 
   28        You may also specify a fully qualified Java classname if you
   29        have your own custom plugins.
   30     -->
   31 
   32   <!-- Controls what version of Lucene various components of Solr
   33        adhere to.  Generally, you want to use the latest version to
   34        get all bug fixes and improvements. It is highly recommended
   35        that you fully re-index after changing this setting as it can
   36        affect both how text is indexed and queried.
   37   -->
   38   <luceneMatchVersion>8.4.1</luceneMatchVersion>
   39 
   40   <!-- <lib/> directives can be used to instruct Solr to load any Jars
   41        identified and use them to resolve any "plugins" specified in
   42        your solrconfig.xml or schema.xml (ie: Analyzers, Request
   43        Handlers, etc...).
   44 
   45        All directories and paths are resolved relative to the
   46        instanceDir.
   47 
   48        Please note that <lib/> directives are processed in the order
   49        that they appear in your solrconfig.xml file, and are "stacked"
   50        on top of each other when building a ClassLoader - so if you have
   51        plugin jars with dependencies on other jars, the "lower level"
   52        dependency jars should be loaded first.
   53 
   54        If a "./lib" directory exists in your instanceDir, all files
   55        found in it are included as if you had used the following
   56        syntax...
   57 
   58               <lib dir="./lib" />
   59     -->
   60 
   61   <!-- A 'dir' option by itself adds any files found in the directory
   62        to the classpath, this is useful for including all jars in a
   63        directory.
   64 
   65        When a 'regex' is specified in addition to a 'dir', only the
   66        files in that directory which completely match the regex
   67        (anchored on both ends) will be included.
   68 
   69        If a 'dir' option (with or without a regex) is used and nothing
   70        is found that matches, a warning will be logged.
   71 
   72        The example below can be used to load a solr-contrib along
   73        with their external dependencies.
   74     -->
   75     <!-- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" /> -->
   76 
   77   <!-- an exact 'path' can be used instead of a 'dir' to specify a
   78        specific jar file.  This will cause a serious error to be logged
   79        if it can't be loaded.
   80     -->
   81   <!--
   82      <lib path="../a-jar-that-does-not-exist.jar" />
   83   -->
   84 
   85   <!-- Data Directory
   86 
   87        Used to specify an alternate directory to hold all index data
   88        other than the default ./data under the Solr home.  If
   89        replication is in use, this should match the replication
   90        configuration.
   91     -->
   92   <dataDir>${solr.data.dir:}</dataDir>
   93 
   94 
   95   <!-- The DirectoryFactory to use for indexes.
   96 
   97        solr.StandardDirectoryFactory is filesystem
   98        based and tries to pick the best implementation for the current
   99        JVM and platform.  solr.NRTCachingDirectoryFactory, the default,
  100        wraps solr.StandardDirectoryFactory and caches small files in memory
  101        for better NRT performance.
  102 
  103        One can force a particular implementation via solr.MMapDirectoryFactory,
  104        solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
  105 
  106        solr.RAMDirectoryFactory is memory based and not persistent.
  107     -->
  108   <directoryFactory name="DirectoryFactory"
  109                     class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
  110 
  111   <!-- The CodecFactory for defining the format of the inverted index.
  112        The default implementation is SchemaCodecFactory, which is the official Lucene
  113        index format, but hooks into the schema to provide per-field customization of
  114        the postings lists and per-document values in the fieldType element
  115        (postingsFormat/docValuesFormat). Note that most of the alternative implementations
  116        are experimental, so if you choose to customize the index format, it's a good
  117        idea to convert back to the official format e.g. via IndexWriter.addIndexes(IndexReader)
  118        before upgrading to a newer version to avoid unnecessary reindexing.
  119        A "compressionMode" string element can be added to <codecFactory> to choose
  120        between the existing compression modes in the default codec: "BEST_SPEED" (default)
  121        or "BEST_COMPRESSION".
  122   -->
  123   <codecFactory class="solr.SchemaCodecFactory"/>
  124 
  125   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126        Index Config - These settings control low-level behavior of indexing
  127        Most example settings here show the default value, but are commented
  128        out, to more easily see where customizations have been made.
  129 
  130        Note: This replaces <indexDefaults> and <mainIndex> from older versions
  131        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
  132   <indexConfig>
  133     <!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
  134          LimitTokenCountFilterFactory in your fieldType definition. E.g.
  135      <filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
  136     -->
  137     <!-- Maximum time to wait for a write lock (ms) for an IndexWriter. Default: 1000 -->
  138     <!-- <writeLockTimeout>1000</writeLockTimeout>  -->
  139 
  140     <!-- Expert: Enabling compound file will use less files for the index,
  141          using fewer file descriptors on the expense of performance decrease.
  142          Default in Lucene is "true". Default in Solr is "false" (since 3.6) -->
  143     <!-- <useCompoundFile>false</useCompoundFile> -->
  144 
  145     <!-- ramBufferSizeMB sets the amount of RAM that may be used by Lucene
  146          indexing for buffering added documents and deletions before they are
  147          flushed to the Directory.
  148          maxBufferedDocs sets a limit on the number of documents buffered
  149          before flushing.
  150          If both ramBufferSizeMB and maxBufferedDocs is set, then
  151          Lucene will flush based on whichever limit is hit first.  -->
  152     <!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
  153     <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
  154 
  155     <!-- Expert: ramPerThreadHardLimitMB sets the maximum amount of RAM that can be consumed
  156          per thread before they are flushed. When limit is exceeded, this triggers a forced
  157          flush even if ramBufferSizeMB has not been exceeded.
  158          This is a safety limit to prevent Lucene's DocumentsWriterPerThread from address space
  159          exhaustion due to its internal 32 bit signed integer based memory addressing.
  160          The specified value should be greater than 0 and less than 2048MB. When not specified,
  161          Solr uses Lucene's default value 1945. -->
  162     <!-- <ramPerThreadHardLimitMB>1945</ramPerThreadHardLimitMB> -->
  163 
  164     <!-- Expert: Merge Policy
  165          The Merge Policy in Lucene controls how merging of segments is done.
  166          The default since Solr/Lucene 3.3 is TieredMergePolicy.
  167          The default since Lucene 2.3 was the LogByteSizeMergePolicy,
  168          Even older versions of Lucene used LogDocMergePolicy.
  169       -->
  170     <!--
  171         <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory">
  172           <int name="maxMergeAtOnce">10</int>
  173           <int name="segmentsPerTier">10</int>
  174           <double name="noCFSRatio">0.1</double>
  175         </mergePolicyFactory>
  176       -->
  177 
  178     <!-- Expert: Merge Scheduler
  179          The Merge Scheduler in Lucene controls how merges are
  180          performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
  181          can perform merges in the background using separate threads.
  182          The SerialMergeScheduler (Lucene 2.2 default) does not.
  183      -->
  184     <!--
  185        <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
  186        -->
  187 
  188     <!-- LockFactory
  189 
  190          This option specifies which Lucene LockFactory implementation
  191          to use.
  192 
  193          single = SingleInstanceLockFactory - suggested for a
  194                   read-only index or when there is no possibility of
  195                   another process trying to modify the index.
  196          native = NativeFSLockFactory - uses OS native file locking.
  197                   Do not use when multiple solr webapps in the same
  198                   JVM are attempting to share a single index.
  199          simple = SimpleFSLockFactory  - uses a plain file for locking
  200 
  201          Defaults: 'native' is default for Solr3.6 and later, otherwise
  202                    'simple' is the default
  203 
  204          More details on the nuances of each LockFactory...
  205          http://wiki.apache.org/lucene-java/AvailableLockFactories
  206     -->
  207     <lockType>${solr.lock.type:native}</lockType>
  208 
  209     <!-- Commit Deletion Policy
  210          Custom deletion policies can be specified here. The class must
  211          implement org.apache.lucene.index.IndexDeletionPolicy.
  212 
  213          The default Solr IndexDeletionPolicy implementation supports
  214          deleting index commit points on number of commits, age of
  215          commit point and optimized status.
  216 
  217          The latest commit point should always be preserved regardless
  218          of the criteria.
  219     -->
  220     <!--
  221     <deletionPolicy class="solr.SolrDeletionPolicy">
  222     -->
  223     <!-- The number of commit points to be kept -->
  224     <!-- <str name="maxCommitsToKeep">1</str> -->
  225     <!-- The number of optimized commit points to be kept -->
  226     <!-- <str name="maxOptimizedCommitsToKeep">0</str> -->
  227     <!--
  228         Delete all commit points once they have reached the given age.
  229         Supports DateMathParser syntax e.g.
  230       -->
  231     <!--
  232        <str name="maxCommitAge">30MINUTES</str>
  233        <str name="maxCommitAge">1DAY</str>
  234     -->
  235     <!--
  236     </deletionPolicy>
  237     -->
  238 
  239     <!-- Lucene Infostream
  240 
  241          To aid in advanced debugging, Lucene provides an "InfoStream"
  242          of detailed information when indexing.
  243 
  244          Setting The value to true will instruct the underlying Lucene
  245          IndexWriter to write its debugging info the specified file
  246       -->
  247     <!-- <infoStream file="INFOSTREAM.txt">false</infoStream> -->
  248   </indexConfig>
  249 
  250 
  251   <!-- JMX
  252 
  253        This example enables JMX if and only if an existing MBeanServer
  254        is found, use this if you want to configure JMX through JVM
  255        parameters. Remove this to disable exposing Solr configuration
  256        and statistics to JMX.
  257 
  258        For more details see http://wiki.apache.org/solr/SolrJmx
  259     -->
  260   <jmx />
  261   <!-- If you want to connect to a particular server, specify the
  262        agentId
  263     -->
  264   <!-- <jmx agentId="myAgent" /> -->
  265   <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
  266   <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
  267     -->
  268 
  269   <!-- The default high-performance update handler -->
  270   <updateHandler class="solr.DirectUpdateHandler2">
  271 
  272     <!-- Enables a transaction log, used for real-time get, durability, and
  273          and solr cloud replica recovery.  The log can grow as big as
  274          uncommitted changes to the index, so use of a hard autoCommit
  275          is recommended (see below).
  276          "dir" - the target directory for transaction logs, defaults to the
  277                 solr data directory.
  278          "numVersionBuckets" - sets the number of buckets used to keep
  279                 track of max version values when checking for re-ordered
  280                 updates; increase this value to reduce the cost of
  281                 synchronizing access to version buckets during high-volume
  282                 indexing, this requires 8 bytes (long) * numVersionBuckets
  283                 of heap space per Solr core.
  284     -->
  285     <updateLog>
  286       <str name="dir">${solr.ulog.dir:}</str>
  287       <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
  288     </updateLog>
  289 
  290     <!-- AutoCommit
  291 
  292          Perform a hard commit automatically under certain conditions.
  293          Instead of enabling autoCommit, consider using "commitWithin"
  294          when adding documents.
  295 
  296          http://wiki.apache.org/solr/UpdateXmlMessages
  297 
  298          maxDocs - Maximum number of documents to add since the last
  299                    commit before automatically triggering a new commit.
  300 
  301          maxTime - Maximum amount of time in ms that is allowed to pass
  302                    since a document was added before automatically
  303                    triggering a new commit.
  304          openSearcher - if false, the commit causes recent index changes
  305            to be flushed to stable storage, but does not cause a new
  306            searcher to be opened to make those changes visible.
  307 
  308          If the updateLog is enabled, then it's highly recommended to
  309          have some sort of hard autoCommit to limit the log size.
  310       -->
  311     <autoCommit>
  312       <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
  313       <openSearcher>false</openSearcher>
  314     </autoCommit>
  315 
  316     <!-- softAutoCommit is like autoCommit except it causes a
  317          'soft' commit which only ensures that changes are visible
  318          but does not ensure that data is synced to disk.  This is
  319          faster and more near-realtime friendly than a hard commit.
  320       -->
  321 
  322     <autoSoftCommit>
  323       <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
  324     </autoSoftCommit>
  325 
  326     <!-- Update Related Event Listeners
  327 
  328          Various IndexWriter related events can trigger Listeners to
  329          take actions.
  330 
  331          postCommit - fired after every commit or optimize command
  332          postOptimize - fired after every optimize command
  333       -->
  334 
  335   </updateHandler>
  336 
  337   <!-- IndexReaderFactory
  338 
  339        Use the following format to specify a custom IndexReaderFactory,
  340        which allows for alternate IndexReader implementations.
  341 
  342        ** Experimental Feature **
  343 
  344        Please note - Using a custom IndexReaderFactory may prevent
  345        certain other features from working. The API to
  346        IndexReaderFactory may change without warning or may even be
  347        removed from future releases if the problems cannot be
  348        resolved.
  349 
  350 
  351        ** Features that may not work with custom IndexReaderFactory **
  352 
  353        The ReplicationHandler assumes a disk-resident index. Using a
  354        custom IndexReader implementation may cause incompatibility
  355        with ReplicationHandler and may cause replication to not work
  356        correctly. See SOLR-1366 for details.
  357 
  358     -->
  359   <!--
  360   <indexReaderFactory name="IndexReaderFactory" class="package.class">
  361     <str name="someArg">Some Value</str>
  362   </indexReaderFactory >
  363   -->
  364 
  365   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  366        Query section - these settings control query time things like caches
  367        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
  368   <query>
  369 
  370     <!-- Maximum number of clauses allowed when parsing a boolean query string.
  371          
  372          This limit only impacts boolean queries specified by a user as part of a query string,
  373          and provides per-collection controls on how complex user specified boolean queries can
  374          be.  Query strings that specify more clauses then this will result in an error.
  375          
  376          If this per-collection limit is greater then the global `maxBooleanClauses` limit
  377          specified in `solr.xml`, it will have no effect, as that setting also limits the size
  378          of user specified boolean queries.
  379       -->
  380     <maxBooleanClauses>${solr.max.booleanClauses:1024}</maxBooleanClauses>
  381 
  382     <!-- Solr Internal Query Caches
  383 
  384          There are two implementations of cache available for Solr,
  385          LRUCache, based on a synchronized LinkedHashMap, and
  386          FastLRUCache, based on a ConcurrentHashMap.
  387 
  388          FastLRUCache has faster gets and slower puts in single
  389          threaded operation and thus is generally faster than LRUCache
  390          when the hit ratio of the cache is high (> 75%), and may be
  391          faster under other scenarios on multi-cpu systems.
  392     -->
  393 
  394     <!-- Filter Cache
  395 
  396          Cache used by SolrIndexSearcher for filters (DocSets),
  397          unordered sets of *all* documents that match a query.  When a
  398          new searcher is opened, its caches may be prepopulated or
  399          "autowarmed" using data from caches in the old searcher.
  400          autowarmCount is the number of items to prepopulate.  For
  401          LRUCache, the autowarmed items will be the most recently
  402          accessed items.
  403 
  404          Parameters:
  405            class - the SolrCache implementation LRUCache or
  406                (LRUCache or FastLRUCache)
  407            size - the maximum number of entries in the cache
  408            initialSize - the initial capacity (number of entries) of
  409                the cache.  (see java.util.HashMap)
  410            autowarmCount - the number of entries to prepopulate from
  411                and old cache.
  412            maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
  413                       to occupy. Note that when this option is specified, the size
  414                       and initialSize parameters are ignored.
  415       -->
  416     <filterCache class="solr.FastLRUCache"
  417                  size="512"
  418                  initialSize="512"
  419                  autowarmCount="0"/>
  420 
  421     <!-- Query Result Cache
  422 
  423          Caches results of searches - ordered lists of document ids
  424          (DocList) based on a query, a sort, and the range of documents requested.
  425          Additional supported parameter by LRUCache:
  426             maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
  427                        to occupy
  428       -->
  429     <queryResultCache class="solr.LRUCache"
  430                       size="512"
  431                       initialSize="512"
  432                       autowarmCount="0"/>
  433 
  434     <!-- Document Cache
  435 
  436          Caches Lucene Document objects (the stored fields for each
  437          document).  Since Lucene internal document ids are transient,
  438          this cache will not be autowarmed.
  439       -->
  440     <documentCache class="solr.LRUCache"
  441                    size="512"
  442                    initialSize="512"
  443                    autowarmCount="0"/>
  444 
  445     <!-- custom cache currently used by block join -->
  446     <cache name="perSegFilter"
  447            class="solr.search.LRUCache"
  448            size="10"
  449            initialSize="0"
  450            autowarmCount="10"
  451            regenerator="solr.NoOpRegenerator" />
  452 
  453     <!-- Field Value Cache
  454 
  455          Cache used to hold field values that are quickly accessible
  456          by document id.  The fieldValueCache is created by default
  457          even if not configured here.
  458       -->
  459     <!--
  460        <fieldValueCache class="solr.FastLRUCache"
  461                         size="512"
  462                         autowarmCount="128"
  463                         showItems="32" />
  464       -->
  465 
  466     <!-- Custom Cache
  467 
  468          Example of a generic cache.  These caches may be accessed by
  469          name through SolrIndexSearcher.getCache(),cacheLookup(), and
  470          cacheInsert().  The purpose is to enable easy caching of
  471          user/application level data.  The regenerator argument should
  472          be specified as an implementation of solr.CacheRegenerator
  473          if autowarming is desired.
  474       -->
  475     <!--
  476        <cache name="myUserCache"
  477               class="solr.LRUCache"
  478               size="4096"
  479               initialSize="1024"
  480               autowarmCount="1024"
  481               regenerator="com.mycompany.MyRegenerator"
  482               />
  483       -->
  484 
  485 
  486     <!-- Lazy Field Loading
  487 
  488          If true, stored fields that are not requested will be loaded
  489          lazily.  This can result in a significant speed improvement
  490          if the usual case is to not load all stored fields,
  491          especially if the skipped fields are large compressed text
  492          fields.
  493     -->
  494     <enableLazyFieldLoading>true</enableLazyFieldLoading>
  495 
  496     <!-- Use Filter For Sorted Query
  497 
  498          A possible optimization that attempts to use a filter to
  499          satisfy a search.  If the requested sort does not include
  500          score, then the filterCache will be checked for a filter
  501          matching the query. If found, the filter will be used as the
  502          source of document ids, and then the sort will be applied to
  503          that.
  504 
  505          For most situations, this will not be useful unless you
  506          frequently get the same search repeatedly with different sort
  507          options, and none of them ever use "score"
  508       -->
  509     <!--
  510        <useFilterForSortedQuery>true</useFilterForSortedQuery>
  511       -->
  512 
  513     <!-- Result Window Size
  514 
  515          An optimization for use with the queryResultCache.  When a search
  516          is requested, a superset of the requested number of document ids
  517          are collected.  For example, if a search for a particular query
  518          requests matching documents 10 through 19, and queryWindowSize is 50,
  519          then documents 0 through 49 will be collected and cached.  Any further
  520          requests in that range can be satisfied via the cache.
  521       -->
  522     <queryResultWindowSize>20</queryResultWindowSize>
  523 
  524     <!-- Maximum number of documents to cache for any entry in the
  525          queryResultCache.
  526       -->
  527     <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
  528 
  529     <!-- Query Related Event Listeners
  530 
  531          Various IndexSearcher related events can trigger Listeners to
  532          take actions.
  533 
  534          newSearcher - fired whenever a new searcher is being prepared
  535          and there is a current searcher handling requests (aka
  536          registered).  It can be used to prime certain caches to
  537          prevent long request times for certain requests.
  538 
  539          firstSearcher - fired whenever a new searcher is being
  540          prepared but there is no current registered searcher to handle
  541          requests or to gain autowarming data from.
  542 
  543 
  544       -->
  545     <!-- QuerySenderListener takes an array of NamedList and executes a
  546          local query request for each NamedList in sequence.
  547       -->
  548     <listener event="newSearcher" class="solr.QuerySenderListener">
  549       <arr name="queries">
  550         <!--
  551            <lst><str name="q">solr</str><str name="sort">price asc</str></lst>
  552            <lst><str name="q">rocks</str><str name="sort">weight asc</str></lst>
  553           -->
  554       </arr>
  555     </listener>
  556     <listener event="firstSearcher" class="solr.QuerySenderListener">
  557       <arr name="queries">
  558         <!--
  559         <lst>
  560           <str name="q">static firstSearcher warming in solrconfig.xml</str>
  561         </lst>
  562         -->
  563       </arr>
  564     </listener>
  565 
  566     <!-- Use Cold Searcher
  567 
  568          If a search request comes in and there is no current
  569          registered searcher, then immediately register the still
  570          warming searcher and use it.  If "false" then all requests
  571          will block until the first searcher is done warming.
  572       -->
  573     <useColdSearcher>false</useColdSearcher>
  574 
  575   </query>
  576 
  577 
  578   <!-- Request Dispatcher
  579 
  580        This section contains instructions for how the SolrDispatchFilter
  581        should behave when processing requests for this SolrCore.
  582 
  583     -->
  584   <requestDispatcher>
  585     <!-- Request Parsing
  586 
  587          These settings indicate how Solr Requests may be parsed, and
  588          what restrictions may be placed on the ContentStreams from
  589          those requests
  590 
  591          enableRemoteStreaming - enables use of the stream.file
  592          and stream.url parameters for specifying remote streams.
  593 
  594          multipartUploadLimitInKB - specifies the max size (in KiB) of
  595          Multipart File Uploads that Solr will allow in a Request.
  596 
  597          formdataUploadLimitInKB - specifies the max size (in KiB) of
  598          form data (application/x-www-form-urlencoded) sent via
  599          POST. You can use POST to pass request parameters not
  600          fitting into the URL.
  601 
  602          addHttpRequestToContext - if set to true, it will instruct
  603          the requestParsers to include the original HttpServletRequest
  604          object in the context map of the SolrQueryRequest under the
  605          key "httpRequest". It will not be used by any of the existing
  606          Solr components, but may be useful when developing custom
  607          plugins.
  608 
  609          *** WARNING ***
  610          Before enabling remote streaming, you should make sure your
  611          system has authentication enabled.
  612 
  613     <requestParsers enableRemoteStreaming="false"
  614                     multipartUploadLimitInKB="-1"
  615                     formdataUploadLimitInKB="-1"
  616                     addHttpRequestToContext="false"/>
  617       -->
  618 
  619     <!-- HTTP Caching
  620 
  621          Set HTTP caching related parameters (for proxy caches and clients).
  622 
  623          The options below instruct Solr not to output any HTTP Caching
  624          related headers
  625       -->
  626     <httpCaching never304="true" />
  627     <!-- If you include a <cacheControl> directive, it will be used to
  628          generate a Cache-Control header (as well as an Expires header
  629          if the value contains "max-age=")
  630 
  631          By default, no Cache-Control header is generated.
  632 
  633          You can use the <cacheControl> option even if you have set
  634          never304="true"
  635       -->
  636     <!--
  637        <httpCaching never304="true" >
  638          <cacheControl>max-age=30, public</cacheControl>
  639        </httpCaching>
  640       -->
  641     <!-- To enable Solr to respond with automatically generated HTTP
  642          Caching headers, and to response to Cache Validation requests
  643          correctly, set the value of never304="false"
  644 
  645          This will cause Solr to generate Last-Modified and ETag
  646          headers based on the properties of the Index.
  647 
  648          The following options can also be specified to affect the
  649          values of these headers...
  650 
  651          lastModFrom - the default value is "openTime" which means the
  652          Last-Modified value (and validation against If-Modified-Since
  653          requests) will all be relative to when the current Searcher
  654          was opened.  You can change it to lastModFrom="dirLastMod" if
  655          you want the value to exactly correspond to when the physical
  656          index was last modified.
  657 
  658          etagSeed="..." is an option you can change to force the ETag
  659          header (and validation against If-None-Match requests) to be
  660          different even if the index has not changed (ie: when making
  661          significant changes to your config file)
  662 
  663          (lastModifiedFrom and etagSeed are both ignored if you use
  664          the never304="true" option)
  665       -->
  666     <!--
  667        <httpCaching lastModifiedFrom="openTime"
  668                     etagSeed="Solr">
  669          <cacheControl>max-age=30, public</cacheControl>
  670        </httpCaching>
  671       -->
  672   </requestDispatcher>
  673 
  674   <!-- Request Handlers
  675 
  676        http://wiki.apache.org/solr/SolrRequestHandler
  677 
  678        Incoming queries will be dispatched to a specific handler by name
  679        based on the path specified in the request.
  680 
  681        If a Request Handler is declared with startup="lazy", then it will
  682        not be initialized until the first request that uses it.
  683 
  684     -->
  685   <!-- SearchHandler
  686 
  687        http://wiki.apache.org/solr/SearchHandler
  688 
  689        For processing Search Queries, the primary Request Handler
  690        provided with Solr is "SearchHandler" It delegates to a sequent
  691        of SearchComponents (see below) and supports distributed
  692        queries across multiple shards
  693     -->
  694   <requestHandler name="/select" class="solr.SearchHandler">
  695     <!-- default values for query parameters can be specified, these
  696          will be overridden by parameters in the request
  697       -->
  698     <lst name="defaults">
  699       <str name="echoParams">explicit</str>
  700       <int name="rows">10</int>
  701       <!-- Default search field
  702          <str name="df">text</str> 
  703         -->
  704       <!-- Change from JSON to XML format (the default prior to Solr 7.0)
  705          <str name="wt">xml</str> 
  706         -->
  707     </lst>
  708     <!-- In addition to defaults, "appends" params can be specified
  709          to identify values which should be appended to the list of
  710          multi-val params from the query (or the existing "defaults").
  711       -->
  712     <!-- In this example, the param "fq=instock:true" would be appended to
  713          any query time fq params the user may specify, as a mechanism for
  714          partitioning the index, independent of any user selected filtering
  715          that may also be desired (perhaps as a result of faceted searching).
  716 
  717          NOTE: there is *absolutely* nothing a client can do to prevent these
  718          "appends" values from being used, so don't use this mechanism
  719          unless you are sure you always want it.
  720       -->
  721     <!--
  722        <lst name="appends">
  723          <str name="fq">inStock:true</str>
  724        </lst>
  725       -->
  726     <!-- "invariants" are a way of letting the Solr maintainer lock down
  727          the options available to Solr clients.  Any params values
  728          specified here are used regardless of what values may be specified
  729          in either the query, the "defaults", or the "appends" params.
  730 
  731          In this example, the facet.field and facet.query params would
  732          be fixed, limiting the facets clients can use.  Faceting is
  733          not turned on by default - but if the client does specify
  734          facet=true in the request, these are the only facets they
  735          will be able to see counts for; regardless of what other
  736          facet.field or facet.query params they may specify.
  737 
  738          NOTE: there is *absolutely* nothing a client can do to prevent these
  739          "invariants" values from being used, so don't use this mechanism
  740          unless you are sure you always want it.
  741       -->
  742     <!--
  743        <lst name="invariants">
  744          <str name="facet.field">cat</str>
  745          <str name="facet.field">manu_exact</str>
  746          <str name="facet.query">price:[* TO 500]</str>
  747          <str name="facet.query">price:[500 TO *]</str>
  748        </lst>
  749       -->
  750     <!-- If the default list of SearchComponents is not desired, that
  751          list can either be overridden completely, or components can be
  752          prepended or appended to the default list.  (see below)
  753       -->
  754     <!--
  755        <arr name="components">
  756          <str>nameOfCustomComponent1</str>
  757          <str>nameOfCustomComponent2</str>
  758        </arr>
  759       -->
  760   </requestHandler>
  761 
  762   <!-- A request handler that returns indented JSON by default -->
  763   <requestHandler name="/query" class="solr.SearchHandler">
  764     <lst name="defaults">
  765       <str name="echoParams">explicit</str>
  766       <str name="wt">json</str>
  767       <str name="indent">true</str>
  768     </lst>
  769   </requestHandler>
  770 
  771   <initParams path="/update/**,/query,/select,/spell">
  772     <lst name="defaults">
  773       <str name="df">_text_</str>
  774     </lst>
  775   </initParams>
  776 
  777   <!-- Search Components
  778 
  779        Search components are registered to SolrCore and used by
  780        instances of SearchHandler (which can access them by name)
  781 
  782        By default, the following components are available:
  783 
  784        <searchComponent name="query"     class="solr.QueryComponent" />
  785        <searchComponent name="facet"     class="solr.FacetComponent" />
  786        <searchComponent name="mlt"       class="solr.MoreLikeThisComponent" />
  787        <searchComponent name="highlight" class="solr.HighlightComponent" />
  788        <searchComponent name="stats"     class="solr.StatsComponent" />
  789        <searchComponent name="debug"     class="solr.DebugComponent" />
  790 
  791        Default configuration in a requestHandler would look like:
  792 
  793        <arr name="components">
  794          <str>query</str>
  795          <str>facet</str>
  796          <str>mlt</str>
  797          <str>highlight</str>
  798          <str>stats</str>
  799          <str>debug</str>
  800        </arr>
  801 
  802        If you register a searchComponent to one of the standard names,
  803        that will be used instead of the default.
  804 
  805        To insert components before or after the 'standard' components, use:
  806 
  807        <arr name="first-components">
  808          <str>myFirstComponentName</str>
  809        </arr>
  810 
  811        <arr name="last-components">
  812          <str>myLastComponentName</str>
  813        </arr>
  814 
  815        NOTE: The component registered with the name "debug" will
  816        always be executed after the "last-components"
  817 
  818      -->
  819 
  820   <!-- Spell Check
  821 
  822        The spell check component can return a list of alternative spelling
  823        suggestions.
  824 
  825        http://wiki.apache.org/solr/SpellCheckComponent
  826     -->
  827   <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
  828 
  829     <str name="queryAnalyzerFieldType">text_general</str>
  830 
  831     <!-- Multiple "Spell Checkers" can be declared and used by this
  832          component
  833       -->
  834 
  835     <!-- a spellchecker built from a field of the main index -->
  836     <lst name="spellchecker">
  837       <str name="name">default</str>
  838       <str name="field">_text_</str>
  839       <str name="classname">solr.DirectSolrSpellChecker</str>
  840       <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
  841       <str name="distanceMeasure">internal</str>
  842       <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
  843       <float name="accuracy">0.5</float>
  844       <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
  845       <int name="maxEdits">2</int>
  846       <!-- the minimum shared prefix when enumerating terms -->
  847       <int name="minPrefix">1</int>
  848       <!-- maximum number of inspections per result. -->
  849       <int name="maxInspections">5</int>
  850       <!-- minimum length of a query term to be considered for correction -->
  851       <int name="minQueryLength">4</int>
  852       <!-- maximum threshold of documents a query term can appear to be considered for correction -->
  853       <float name="maxQueryFrequency">0.01</float>
  854       <!-- uncomment this to require suggestions to occur in 1% of the documents
  855         <float name="thresholdTokenFrequency">.01</float>
  856       -->
  857     </lst>
  858 
  859     <!-- a spellchecker that can break or combine words.  See "/spell" handler below for usage -->
  860     <!--
  861     <lst name="spellchecker">
  862       <str name="name">wordbreak</str>
  863       <str name="classname">solr.WordBreakSolrSpellChecker</str>
  864       <str name="field">name</str>
  865       <str name="combineWords">true</str>
  866       <str name="breakWords">true</str>
  867       <int name="maxChanges">10</int>
  868     </lst>
  869     -->
  870   </searchComponent>
  871 
  872   <!-- A request handler for demonstrating the spellcheck component.
  873 
  874        NOTE: This is purely as an example.  The whole purpose of the
  875        SpellCheckComponent is to hook it into the request handler that
  876        handles your normal user queries so that a separate request is
  877        not needed to get suggestions.
  878 
  879        IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS
  880        NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!
  881 
  882        See http://wiki.apache.org/solr/SpellCheckComponent for details
  883        on the request parameters.
  884     -->
  885   <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
  886     <lst name="defaults">
  887       <!-- Solr will use suggestions from both the 'default' spellchecker
  888            and from the 'wordbreak' spellchecker and combine them.
  889            collations (re-written queries) can include a combination of
  890            corrections from both spellcheckers -->
  891       <str name="spellcheck.dictionary">default</str>
  892       <str name="spellcheck">on</str>
  893       <str name="spellcheck.extendedResults">true</str>
  894       <str name="spellcheck.count">10</str>
  895       <str name="spellcheck.alternativeTermCount">5</str>
  896       <str name="spellcheck.maxResultsForSuggest">5</str>
  897       <str name="spellcheck.collate">true</str>
  898       <str name="spellcheck.collateExtendedResults">true</str>
  899       <str name="spellcheck.maxCollationTries">10</str>
  900       <str name="spellcheck.maxCollations">5</str>
  901     </lst>
  902     <arr name="last-components">
  903       <str>spellcheck</str>
  904     </arr>
  905   </requestHandler>
  906 
  907   <!-- Terms Component
  908 
  909        http://wiki.apache.org/solr/TermsComponent
  910 
  911        A component to return terms and document frequency of those
  912        terms
  913     -->
  914   <searchComponent name="terms" class="solr.TermsComponent"/>
  915 
  916   <!-- A request handler for demonstrating the terms component -->
  917   <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
  918     <lst name="defaults">
  919       <bool name="terms">true</bool>
  920       <bool name="distrib">false</bool>
  921     </lst>
  922     <arr name="components">
  923       <str>terms</str>
  924     </arr>
  925   </requestHandler>
  926 
  927   <!-- Highlighting Component
  928 
  929        http://wiki.apache.org/solr/HighlightingParameters
  930     -->
  931   <searchComponent class="solr.HighlightComponent" name="highlight">
  932     <highlighting>
  933       <!-- Configure the standard fragmenter -->
  934       <!-- This could most likely be commented out in the "default" case -->
  935       <fragmenter name="gap"
  936                   default="true"
  937                   class="solr.highlight.GapFragmenter">
  938         <lst name="defaults">
  939           <int name="hl.fragsize">100</int>
  940         </lst>
  941       </fragmenter>
  942 
  943       <!-- A regular-expression-based fragmenter
  944            (for sentence extraction)
  945         -->
  946       <fragmenter name="regex"
  947                   class="solr.highlight.RegexFragmenter">
  948         <lst name="defaults">
  949           <!-- slightly smaller fragsizes work better because of slop -->
  950           <int name="hl.fragsize">70</int>
  951           <!-- allow 50% slop on fragment sizes -->
  952           <float name="hl.regex.slop">0.5</float>
  953           <!-- a basic sentence pattern -->
  954           <str name="hl.regex.pattern">[-\w ,/\n\&quot;&apos;]{20,200}</str>
  955         </lst>
  956       </fragmenter>
  957 
  958       <!-- Configure the standard formatter -->
  959       <formatter name="html"
  960                  default="true"
  961                  class="solr.highlight.HtmlFormatter">
  962         <lst name="defaults">
  963           <str name="hl.simple.pre"><![CDATA[<em>]]></str>
  964           <str name="hl.simple.post"><![CDATA[</em>]]></str>
  965         </lst>
  966       </formatter>
  967 
  968       <!-- Configure the standard encoder -->
  969       <encoder name="html"
  970                class="solr.highlight.HtmlEncoder" />
  971 
  972       <!-- Configure the standard fragListBuilder -->
  973       <fragListBuilder name="simple"
  974                        class="solr.highlight.SimpleFragListBuilder"/>
  975 
  976       <!-- Configure the single fragListBuilder -->
  977       <fragListBuilder name="single"
  978                        class="solr.highlight.SingleFragListBuilder"/>
  979 
  980       <!-- Configure the weighted fragListBuilder -->
  981       <fragListBuilder name="weighted"
  982                        default="true"
  983                        class="solr.highlight.WeightedFragListBuilder"/>
  984 
  985       <!-- default tag FragmentsBuilder -->
  986       <fragmentsBuilder name="default"
  987                         default="true"
  988                         class="solr.highlight.ScoreOrderFragmentsBuilder">
  989         <!--
  990         <lst name="defaults">
  991           <str name="hl.multiValuedSeparatorChar">/</str>
  992         </lst>
  993         -->
  994       </fragmentsBuilder>
  995 
  996       <!-- multi-colored tag FragmentsBuilder -->
  997       <fragmentsBuilder name="colored"
  998                         class="solr.highlight.ScoreOrderFragmentsBuilder">
  999         <lst name="defaults">
 1000           <str name="hl.tag.pre"><![CDATA[
 1001                <b style="background:yellow">,<b style="background:lawgreen">,
 1002                <b style="background:aquamarine">,<b style="background:magenta">,
 1003                <b style="background:palegreen">,<b style="background:coral">,
 1004                <b style="background:wheat">,<b style="background:khaki">,
 1005                <b style="background:lime">,<b style="background:deepskyblue">]]></str>
 1006           <str name="hl.tag.post"><![CDATA[</b>]]></str>
 1007         </lst>
 1008       </fragmentsBuilder>
 1009 
 1010       <boundaryScanner name="default"
 1011                        default="true"
 1012                        class="solr.highlight.SimpleBoundaryScanner">
 1013         <lst name="defaults">
 1014           <str name="hl.bs.maxScan">10</str>
 1015           <str name="hl.bs.chars">.,!? &#9;&#10;&#13;</str>
 1016         </lst>
 1017       </boundaryScanner>
 1018 
 1019       <boundaryScanner name="breakIterator"
 1020                        class="solr.highlight.BreakIteratorBoundaryScanner">
 1021         <lst name="defaults">
 1022           <!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
 1023           <str name="hl.bs.type">WORD</str>
 1024           <!-- language and country are used when constructing Locale object.  -->
 1025           <!-- And the Locale object will be used when getting instance of BreakIterator -->
 1026           <str name="hl.bs.language">en</str>
 1027           <str name="hl.bs.country">US</str>
 1028         </lst>
 1029       </boundaryScanner>
 1030     </highlighting>
 1031   </searchComponent>
 1032 
 1033   <!-- Update Processors
 1034 
 1035        Chains of Update Processor Factories for dealing with Update
 1036        Requests can be declared, and then used by name in Update
 1037        Request Processors
 1038 
 1039        http://wiki.apache.org/solr/UpdateRequestProcessor
 1040 
 1041     -->
 1042 
 1043   <!-- Add unknown fields to the schema
 1044 
 1045        Field type guessing update processors that will
 1046        attempt to parse string-typed field values as Booleans, Longs,
 1047        Doubles, or Dates, and then add schema fields with the guessed
 1048        field types. Text content will be indexed as "text_general" as
 1049        well as a copy to a plain string version in *_str.
 1050 
 1051        These require that the schema is both managed and mutable, by
 1052        declaring schemaFactory as ManagedIndexSchemaFactory, with
 1053        mutable specified as true.
 1054 
 1055        See http://wiki.apache.org/solr/GuessingFieldTypes
 1056     -->
 1057   <updateProcessor class="solr.UUIDUpdateProcessorFactory" name="uuid"/>
 1058   <updateProcessor class="solr.RemoveBlankFieldUpdateProcessorFactory" name="remove-blank"/>
 1059   <updateProcessor class="solr.FieldNameMutatingUpdateProcessorFactory" name="field-name-mutating">
 1060     <str name="pattern">[^\w-\.]</str>
 1061     <str name="replacement">_</str>
 1062   </updateProcessor>
 1063   <updateProcessor class="solr.ParseBooleanFieldUpdateProcessorFactory" name="parse-boolean"/>
 1064   <updateProcessor class="solr.ParseLongFieldUpdateProcessorFactory" name="parse-long"/>
 1065   <updateProcessor class="solr.ParseDoubleFieldUpdateProcessorFactory" name="parse-double"/>
 1066   <updateProcessor class="solr.ParseDateFieldUpdateProcessorFactory" name="parse-date">
 1067     <arr name="format">
 1068       <str>yyyy-MM-dd['T'[HH:mm[:ss[.SSS]][z</str>
 1069       <str>yyyy-MM-dd['T'[HH:mm[:ss[,SSS]][z</str>
 1070       <str>yyyy-MM-dd HH:mm[:ss[.SSS]][z</str>
 1071       <str>yyyy-MM-dd HH:mm[:ss[,SSS]][z</str>
 1072       <str>[EEE, ]dd MMM yyyy HH:mm[:ss] z</str>
 1073       <str>EEEE, dd-MMM-yy HH:mm:ss z</str>
 1074       <str>EEE MMM ppd HH:mm:ss [z ]yyyy</str>
 1075     </arr>
 1076   </updateProcessor>
 1077   <updateProcessor class="solr.AddSchemaFieldsUpdateProcessorFactory" name="add-schema-fields">
 1078     <lst name="typeMapping">
 1079       <str name="valueClass">java.lang.String</str>
 1080       <str name="fieldType">text_general</str>
 1081       <lst name="copyField">
 1082         <str name="dest">*_str</str>
 1083         <int name="maxChars">256</int>
 1084       </lst>
 1085       <!-- Use as default mapping instead of defaultFieldType -->
 1086       <bool name="default">true</bool>
 1087     </lst>
 1088     <lst name="typeMapping">
 1089       <str name="valueClass">java.lang.Boolean</str>
 1090       <str name="fieldType">booleans</str>
 1091     </lst>
 1092     <lst name="typeMapping">
 1093       <str name="valueClass">java.util.Date</str>
 1094       <str name="fieldType">pdates</str>
 1095     </lst>
 1096     <lst name="typeMapping">
 1097       <str name="valueClass">java.lang.Long</str>
 1098       <str name="valueClass">java.lang.Integer</str>
 1099       <str name="fieldType">plongs</str>
 1100     </lst>
 1101     <lst name="typeMapping">
 1102       <str name="valueClass">java.lang.Number</str>
 1103       <str name="fieldType">pdoubles</str>
 1104     </lst>
 1105   </updateProcessor>
 1106 
 1107   <!-- The update.autoCreateFields property can be turned to false to disable schemaless mode -->
 1108   <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"
 1109            processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
 1110     <processor class="solr.LogUpdateProcessorFactory"/>
 1111     <processor class="solr.DistributedUpdateProcessorFactory"/>
 1112     <processor class="solr.RunUpdateProcessorFactory"/>
 1113   </updateRequestProcessorChain>
 1114 
 1115   <!-- Deduplication
 1116 
 1117        An example dedup update processor that creates the "id" field
 1118        on the fly based on the hash code of some other fields.  This
 1119        example has overwriteDupes set to false since we are using the
 1120        id field as the signatureField and Solr will maintain
 1121        uniqueness based on that anyway.
 1122 
 1123     -->
 1124   <!--
 1125      <updateRequestProcessorChain name="dedupe">
 1126        <processor class="solr.processor.SignatureUpdateProcessorFactory">
 1127          <bool name="enabled">true</bool>
 1128          <str name="signatureField">id</str>
 1129          <bool name="overwriteDupes">false</bool>
 1130          <str name="fields">name,features,cat</str>
 1131          <str name="signatureClass">solr.processor.Lookup3Signature</str>
 1132        </processor>
 1133        <processor class="solr.LogUpdateProcessorFactory" />
 1134        <processor class="solr.RunUpdateProcessorFactory" />
 1135      </updateRequestProcessorChain>
 1136     -->
 1137 
 1138   <!-- Response Writers
 1139 
 1140        http://wiki.apache.org/solr/QueryResponseWriter
 1141 
 1142        Request responses will be written using the writer specified by
 1143        the 'wt' request parameter matching the name of a registered
 1144        writer.
 1145 
 1146        The "default" writer is the default and will be used if 'wt' is
 1147        not specified in the request.
 1148     -->
 1149   <!-- The following response writers are implicitly configured unless
 1150        overridden...
 1151     -->
 1152   <!--
 1153      <queryResponseWriter name="xml"
 1154                           default="true"
 1155                           class="solr.XMLResponseWriter" />
 1156      <queryResponseWriter name="json" class="solr.JSONResponseWriter"/>
 1157      <queryResponseWriter name="python" class="solr.PythonResponseWriter"/>
 1158      <queryResponseWriter name="ruby" class="solr.RubyResponseWriter"/>
 1159      <queryResponseWriter name="php" class="solr.PHPResponseWriter"/>
 1160      <queryResponseWriter name="phps" class="solr.PHPSerializedResponseWriter"/>
 1161      <queryResponseWriter name="csv" class="solr.CSVResponseWriter"/>
 1162      <queryResponseWriter name="schema.xml" class="solr.SchemaXmlResponseWriter"/>
 1163     -->
 1164 
 1165   <queryResponseWriter name="json" class="solr.JSONResponseWriter">
 1166     <!-- For the purposes of the tutorial, JSON responses are written as
 1167      plain text so that they are easy to read in *any* browser.
 1168      If you expect a MIME type of "application/json" just remove this override.
 1169     -->
 1170     <str name="content-type">text/plain; charset=UTF-8</str>
 1171   </queryResponseWriter>
 1172 
 1173   <!-- Query Parsers
 1174 
 1175        https://lucene.apache.org/solr/guide/query-syntax-and-parsing.html
 1176 
 1177        Multiple QParserPlugins can be registered by name, and then
 1178        used in either the "defType" param for the QueryComponent (used
 1179        by SearchHandler) or in LocalParams
 1180     -->
 1181   <!-- example of registering a query parser -->
 1182   <!--
 1183      <queryParser name="myparser" class="com.mycompany.MyQParserPlugin"/>
 1184     -->
 1185 
 1186   <!-- Function Parsers
 1187 
 1188        http://wiki.apache.org/solr/FunctionQuery
 1189 
 1190        Multiple ValueSourceParsers can be registered by name, and then
 1191        used as function names when using the "func" QParser.
 1192     -->
 1193   <!-- example of registering a custom function parser  -->
 1194   <!--
 1195      <valueSourceParser name="myfunc"
 1196                         class="com.mycompany.MyValueSourceParser" />
 1197     -->
 1198 
 1199 
 1200   <!-- Document Transformers
 1201        http://wiki.apache.org/solr/DocTransformers
 1202     -->
 1203   <!--
 1204      Could be something like:
 1205      <transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
 1206        <int name="connection">jdbc://....</int>
 1207      </transformer>
 1208 
 1209      To add a constant value to all docs, use:
 1210      <transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
 1211        <int name="value">5</int>
 1212      </transformer>
 1213 
 1214      If you want the user to still be able to change it with _value:something_ use this:
 1215      <transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
 1216        <double name="defaultValue">5</double>
 1217      </transformer>
 1218 
 1219       If you are using the QueryElevationComponent, you may wish to mark documents that get boosted.  The
 1220       EditorialMarkerFactory will do exactly that:
 1221      <transformer name="qecBooster" class="org.apache.solr.response.transform.EditorialMarkerFactory" />
 1222     -->
 1223 </config>