Projekt

Obecné

Profil

Stáhnout (49.1 KB) Statistiky
| Větev: | Tag: | Revize:
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>
(3-3/5)