Rev 477 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
477 | jmachado | 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 | For more details about configurations options that may appear in this |
||
20 | file, see http://wiki.apache.org/solr/SolrConfigXml. |
||
21 | |||
22 | Specifically, the Solr Config can support XInclude, which may make it easier to manage |
||
23 | the configuration. See https://issues.apache.org/jira/browse/SOLR-1167 |
||
24 | --> |
||
25 | <config> |
||
26 | <!-- Set this to 'false' if you want solr to continue working after it has |
||
27 | encountered an severe configuration error. In a production environment, |
||
28 | you may want solr to keep working even if one handler is mis-configured. |
||
29 | |||
30 | You may also set this to false using by setting the system property: |
||
31 | -Dsolr.abortOnConfigurationError=false |
||
32 | --> |
||
33 | <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError> |
||
34 | |||
35 | <!-- lib directives can be used to instruct Solr to load an Jars identified |
||
36 | and use them to resolve any "plugins" specified in your solrconfig.xml or |
||
37 | schema.xml (ie: Analyzers, Request Handlers, etc...). |
||
38 | |||
39 | All directories and paths are resolved relative the instanceDir. |
||
40 | |||
41 | If a "./lib" directory exists in your instanceDir, all files found in it |
||
42 | are included as if you had used the following syntax... |
||
43 | |||
44 | <lib dir="./lib" /> |
||
45 | --> |
||
46 | <!-- A dir option by itself adds any files found in the directory to the |
||
47 | classpath, this is useful for including all jars in a directory. |
||
48 | --> |
||
49 | <lib dir="../../contrib/extraction/lib" /> |
||
50 | <!-- When a regex is specified in addition to a directory, only the files in that |
||
51 | directory which completely match the regex (anchored on both ends) |
||
52 | will be included. |
||
53 | --> |
||
54 | <lib dir="../../dist/" regex="apache-solr-cell-\d.*\.jar" /> |
||
55 | <lib dir="../../dist/" regex="apache-solr-clustering-\d.*\.jar" /> |
||
56 | <!-- If a dir option (with or without a regex) is used and nothing is found |
||
57 | that matches, it will be ignored |
||
58 | --> |
||
59 | <lib dir="../../contrib/clustering/lib/downloads/" /> |
||
60 | <lib dir="../../contrib/clustering/lib/" /> |
||
61 | <lib dir="/total/crap/dir/ignored" /> |
||
62 | <!-- an exact path can be used to specify a specific file. This will cause |
||
63 | a serious error to be logged if it can't be loaded. |
||
64 | <lib path="../a-jar-that-does-not-exist.jar" /> |
||
65 | --> |
||
66 | |||
67 | |||
68 | <!-- Used to specify an alternate directory to hold all index data |
||
69 | other than the default ./data under the Solr home. |
||
70 | If replication is in use, this should match the replication configuration. --> |
||
71 | <dataDir>${solr.data.dir:./solr/data}</dataDir> |
||
72 | |||
73 | |||
74 | <!-- WARNING: this <indexDefaults> section only provides defaults for index writers |
||
75 | in general. See also the <mainIndex> section after that when changing parameters |
||
76 | for Solr's main Lucene index. --> |
||
77 | <indexDefaults> |
||
78 | <!-- Values here affect all index writers and act as a default unless overridden. --> |
||
79 | <useCompoundFile>false</useCompoundFile> |
||
80 | |||
81 | <mergeFactor>10</mergeFactor> |
||
82 | <!-- If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush |
||
83 | based on whichever limit is hit first. --> |
||
84 | <!--<maxBufferedDocs>1000</maxBufferedDocs>--> |
||
85 | |||
86 | <!-- Sets the amount of RAM that may be used by Lucene indexing |
||
87 | for buffering added documents and deletions before they are |
||
88 | flushed to the Directory. --> |
||
89 | <ramBufferSizeMB>32</ramBufferSizeMB> |
||
90 | <!-- <maxMergeDocs>2147483647</maxMergeDocs> --> |
||
91 | <maxFieldLength>10000</maxFieldLength> |
||
92 | <writeLockTimeout>1000</writeLockTimeout> |
||
93 | <commitLockTimeout>10000</commitLockTimeout> |
||
94 | |||
95 | <!-- |
||
96 | Expert: Turn on Lucene's auto commit capability. This causes intermediate |
||
97 | segment flushes to write a new lucene index descriptor, enabling it to be |
||
98 | opened by an external IndexReader. This can greatly slow down indexing |
||
99 | speed. NOTE: Despite the name, this value does not have any relation to |
||
100 | Solr's autoCommit functionality |
||
101 | --> |
||
102 | <!--<luceneAutoCommit>false</luceneAutoCommit>--> |
||
103 | |||
104 | <!-- |
||
105 | Expert: The Merge Policy in Lucene controls how merging is handled by |
||
106 | Lucene. The default in 2.3 is the LogByteSizeMergePolicy, previous |
||
107 | versions used LogDocMergePolicy. |
||
108 | |||
109 | LogByteSizeMergePolicy chooses segments to merge based on their size. The |
||
110 | Lucene 2.2 default, LogDocMergePolicy chose when to merge based on number |
||
111 | of documents |
||
112 | |||
113 | Other implementations of MergePolicy must have a no-argument constructor |
||
114 | --> |
||
115 | <!--<mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>--> |
||
116 | |||
117 | <!-- |
||
118 | Expert: |
||
119 | The Merge Scheduler in Lucene controls how merges are performed. The |
||
120 | ConcurrentMergeScheduler (Lucene 2.3 default) can perform merges in the |
||
121 | background using separate threads. The SerialMergeScheduler (Lucene 2.2 |
||
122 | default) does not. |
||
123 | --> |
||
124 | <!--<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>--> |
||
125 | |||
126 | |||
127 | <!-- |
||
128 | This option specifies which Lucene LockFactory implementation to use. |
||
129 | |||
130 | single = SingleInstanceLockFactory - suggested for a read-only index |
||
131 | or when there is no possibility of another process trying |
||
132 | to modify the index. |
||
133 | native = NativeFSLockFactory - uses OS native file locking |
||
134 | simple = SimpleFSLockFactory - uses a plain file for locking |
||
135 | |||
136 | (For backwards compatibility with Solr 1.2, 'simple' is the default |
||
137 | if not specified.) |
||
138 | --> |
||
139 | <lockType>native</lockType> |
||
140 | <!-- |
||
141 | Expert: |
||
142 | Controls how often Lucene loads terms into memory --> |
||
143 | <!--<termIndexInterval>256</termIndexInterval>--> |
||
144 | </indexDefaults> |
||
145 | |||
146 | <mainIndex> |
||
147 | <!-- options specific to the main on-disk lucene index --> |
||
148 | <useCompoundFile>false</useCompoundFile> |
||
149 | <ramBufferSizeMB>32</ramBufferSizeMB> |
||
150 | <mergeFactor>10</mergeFactor> |
||
151 | <!-- Deprecated --> |
||
152 | <!--<maxBufferedDocs>1000</maxBufferedDocs>--> |
||
153 | <!--<maxMergeDocs>2147483647</maxMergeDocs>--> |
||
154 | |||
155 | <!-- inherit from indexDefaults <maxFieldLength>10000</maxFieldLength> --> |
||
156 | |||
157 | <!-- If true, unlock any held write or commit locks on startup. |
||
158 | This defeats the locking mechanism that allows multiple |
||
159 | processes to safely access a lucene index, and should be |
||
160 | used with care. |
||
161 | This is not needed if lock type is 'none' or 'single' |
||
162 | --> |
||
163 | <unlockOnStartup>false</unlockOnStartup> |
||
164 | |||
165 | <!-- If true, IndexReaders will be reopened (often more efficient) instead |
||
166 | of closed and then opened. --> |
||
167 | <reopenReaders>true</reopenReaders> |
||
168 | |||
169 | <!-- |
||
170 | Expert: |
||
171 | Controls how often Lucene loads terms into memory. Default is 128 and is likely good for most everyone. --> |
||
172 | <!--<termIndexInterval>256</termIndexInterval>--> |
||
173 | |||
174 | <!-- |
||
175 | Custom deletion policies can specified here. The class must |
||
176 | implement org.apache.lucene.index.IndexDeletionPolicy. |
||
177 | |||
178 | http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/index/IndexDeletionPolicy.html |
||
179 | |||
180 | The standard Solr IndexDeletionPolicy implementation supports deleting |
||
181 | index commit points on number of commits, age of commit point and |
||
182 | optimized status. |
||
183 | |||
184 | The latest commit point should always be preserved regardless |
||
185 | of the criteria. |
||
186 | --> |
||
187 | <deletionPolicy class="solr.SolrDeletionPolicy"> |
||
188 | <!-- The number of commit points to be kept --> |
||
189 | <str name="maxCommitsToKeep">1</str> |
||
190 | <!-- The number of optimized commit points to be kept --> |
||
191 | <str name="maxOptimizedCommitsToKeep">0</str> |
||
192 | <!-- |
||
193 | Delete all commit points once they have reached the given age. |
||
194 | Supports DateMathParser syntax e.g. |
||
195 | |||
196 | <str name="maxCommitAge">30MINUTES</str> |
||
197 | <str name="maxCommitAge">1DAY</str> |
||
198 | --> |
||
199 | </deletionPolicy> |
||
200 | |||
201 | <!-- To aid in advanced debugging, you may turn on IndexWriter debug logging. |
||
202 | Setting to true will set the file that the underlying Lucene IndexWriter |
||
203 | will write its debug infostream to. --> |
||
204 | <infoStream file="INFOSTREAM.txt">false</infoStream> |
||
205 | |||
206 | </mainIndex> |
||
207 | |||
208 | <!-- Enables JMX if and only if an existing MBeanServer is found, use this |
||
209 | if you want to configure JMX through JVM parameters. Remove this to disable |
||
210 | exposing Solr configuration and statistics to JMX. |
||
211 | |||
212 | If you want to connect to a particular server, specify the agentId |
||
213 | e.g. <jmx agentId="myAgent" /> |
||
214 | |||
215 | If you want to start a new MBeanServer, specify the serviceUrl |
||
216 | e.g <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/> |
||
217 | |||
218 | For more details see http://wiki.apache.org/solr/SolrJmx |
||
219 | --> |
||
220 | <jmx /> |
||
221 | |||
222 | <!-- the default high-performance update handler --> |
||
223 | <updateHandler class="solr.DirectUpdateHandler2"> |
||
224 | <!-- A prefix of "solr." for class names is an alias that |
||
225 | causes solr to search appropriate packages, including |
||
226 | org.apache.solr.(search|update|request|core|analysis) |
||
227 | --> |
||
228 | |||
229 | <!-- Perform a <commit/> automatically under certain conditions: |
||
230 | maxDocs - number of updates since last commit is greater than this |
||
231 | maxTime - oldest uncommited update (in ms) is this long ago |
||
232 | Instead of enabling autoCommit, consider using "commitWithin" |
||
233 | when adding documents. http://wiki.apache.org/solr/UpdateXmlMessages |
||
234 | <autoCommit> |
||
235 | <maxDocs>10000</maxDocs> |
||
236 | <maxTime>1000</maxTime> |
||
237 | </autoCommit> |
||
238 | --> |
||
239 | |||
240 | |||
241 | <!-- The RunExecutableListener executes an external command from a |
||
242 | hook such as postCommit or postOptimize. |
||
243 | exe - the name of the executable to run |
||
244 | dir - dir to use as the current working directory. default="." |
||
245 | wait - the calling thread waits until the executable returns. default="true" |
||
246 | args - the arguments to pass to the program. default=nothing |
||
247 | env - environment variables to set. default=nothing |
||
248 | --> |
||
249 | <!-- A postCommit event is fired after every commit or optimize command |
||
250 | <listener event="postCommit" class="solr.RunExecutableListener"> |
||
251 | <str name="exe">solr/bin/snapshooter</str> |
||
252 | <str name="dir">.</str> |
||
253 | <bool name="wait">true</bool> |
||
254 | <arr name="args"> <str>arg1</str> <str>arg2</str> </arr> |
||
255 | <arr name="env"> <str>MYVAR=val1</str> </arr> |
||
256 | </listener> |
||
257 | --> |
||
258 | <!-- A postOptimize event is fired only after every optimize command |
||
259 | <listener event="postOptimize" class="solr.RunExecutableListener"> |
||
260 | <str name="exe">snapshooter</str> |
||
261 | <str name="dir">solr/bin</str> |
||
262 | <bool name="wait">true</bool> |
||
263 | </listener> |
||
264 | --> |
||
265 | |||
266 | </updateHandler> |
||
267 | |||
268 | <!-- Use the following format to specify a custom IndexReaderFactory - allows for alternate |
||
269 | IndexReader implementations. |
||
270 | |||
271 | ** Experimental Feature ** |
||
272 | Please note - Using a custom IndexReaderFactory may prevent certain other features |
||
273 | from working. The API to IndexReaderFactory may change without warning or may even |
||
274 | be removed from future releases if the problems cannot be resolved. |
||
275 | |||
276 | ** Features that may not work with custom IndexReaderFactory ** |
||
277 | The ReplicationHandler assumes a disk-resident index. Using a custom |
||
278 | IndexReader implementation may cause incompatibility with ReplicationHandler and |
||
279 | may cause replication to not work correctly. See SOLR-1366 for details. |
||
280 | |||
281 | <indexReaderFactory name="IndexReaderFactory" class="package.class"> |
||
282 | Parameters as required by the implementation |
||
283 | </indexReaderFactory > |
||
284 | --> |
||
285 | <!-- To set the termInfosIndexDivisor, do this: --> |
||
286 | <!--<indexReaderFactory name="IndexReaderFactory" class="org.apache.solr.core.StandardIndexReaderFactory"> |
||
287 | <int name="termInfosIndexDivisor">12</int> |
||
288 | </indexReaderFactory >--> |
||
289 | |||
290 | |||
291 | <query> |
||
292 | <!-- Maximum number of clauses in a boolean query... in the past, this affected |
||
293 | range or prefix queries that expanded to big boolean queries - built in Solr |
||
294 | query parsers no longer create queries with this limitation. |
||
295 | An exception is thrown if exceeded. --> |
||
296 | <maxBooleanClauses>1024</maxBooleanClauses> |
||
297 | |||
298 | |||
299 | <!-- There are two implementations of cache available for Solr, |
||
300 | LRUCache, based on a synchronized LinkedHashMap, and |
||
301 | FastLRUCache, based on a ConcurrentHashMap. FastLRUCache has faster gets |
||
302 | and slower puts in single threaded operation and thus is generally faster |
||
303 | than LRUCache when the hit ratio of the cache is high (> 75%), and may be |
||
304 | faster under other scenarios on multi-cpu systems. --> |
||
305 | <!-- Cache used by SolrIndexSearcher for filters (DocSets), |
||
306 | unordered sets of *all* documents that match a query. |
||
307 | When a new searcher is opened, its caches may be prepopulated |
||
308 | or "autowarmed" using data from caches in the old searcher. |
||
309 | autowarmCount is the number of items to prepopulate. For LRUCache, |
||
310 | the autowarmed items will be the most recently accessed items. |
||
311 | Parameters: |
||
312 | class - the SolrCache implementation LRUCache or FastLRUCache |
||
313 | size - the maximum number of entries in the cache |
||
314 | initialSize - the initial capacity (number of entries) of |
||
315 | the cache. (seel java.util.HashMap) |
||
316 | autowarmCount - the number of entries to prepopulate from |
||
317 | and old cache. |
||
318 | --> |
||
319 | <filterCache |
||
320 | class="solr.FastLRUCache" |
||
321 | size="512" |
||
322 | initialSize="512" |
||
323 | autowarmCount="0"/> |
||
324 | |||
325 | <!-- Cache used to hold field values that are quickly accessible |
||
326 | by document id. The fieldValueCache is created by default |
||
327 | even if not configured here. |
||
328 | <fieldValueCache |
||
329 | class="solr.FastLRUCache" |
||
330 | size="512" |
||
331 | autowarmCount="128" |
||
332 | showItems="32" |
||
333 | /> |
||
334 | --> |
||
335 | |||
336 | <!-- queryResultCache caches results of searches - ordered lists of |
||
337 | document ids (DocList) based on a query, a sort, and the range |
||
338 | of documents requested. --> |
||
339 | <queryResultCache |
||
340 | class="solr.LRUCache" |
||
341 | size="512" |
||
342 | initialSize="512" |
||
343 | autowarmCount="0"/> |
||
344 | |||
345 | <!-- documentCache caches Lucene Document objects (the stored fields for each document). |
||
346 | Since Lucene internal document ids are transient, this cache will not be autowarmed. --> |
||
347 | <documentCache |
||
348 | class="solr.LRUCache" |
||
349 | size="512" |
||
350 | initialSize="512" |
||
351 | autowarmCount="0"/> |
||
352 | |||
353 | <!-- If true, stored fields that are not requested will be loaded lazily. |
||
354 | This can result in a significant speed improvement if the usual case is to |
||
355 | not load all stored fields, especially if the skipped fields are large |
||
356 | compressed text fields. |
||
357 | --> |
||
358 | <enableLazyFieldLoading>true</enableLazyFieldLoading> |
||
359 | |||
360 | <!-- Example of a generic cache. These caches may be accessed by name |
||
361 | through SolrIndexSearcher.getCache(),cacheLookup(), and cacheInsert(). |
||
362 | The purpose is to enable easy caching of user/application level data. |
||
363 | The regenerator argument should be specified as an implementation |
||
364 | of solr.search.CacheRegenerator if autowarming is desired. --> |
||
365 | <!-- |
||
366 | <cache name="myUserCache" |
||
367 | class="solr.LRUCache" |
||
368 | size="4096" |
||
369 | initialSize="1024" |
||
370 | autowarmCount="1024" |
||
371 | regenerator="org.mycompany.mypackage.MyRegenerator" |
||
372 | /> |
||
373 | --> |
||
374 | |||
375 | <!-- An optimization that attempts to use a filter to satisfy a search. |
||
376 | If the requested sort does not include score, then the filterCache |
||
377 | will be checked for a filter matching the query. If found, the filter |
||
378 | will be used as the source of document ids, and then the sort will be |
||
379 | applied to that. |
||
380 | <useFilterForSortedQuery>true</useFilterForSortedQuery> |
||
381 | --> |
||
382 | |||
383 | <!-- An optimization for use with the queryResultCache. When a search |
||
384 | is requested, a superset of the requested number of document ids |
||
385 | are collected. For example, if a search for a particular query |
||
386 | requests matching documents 10 through 19, and queryWindowSize is 50, |
||
387 | then documents 0 through 49 will be collected and cached. Any further |
||
388 | requests in that range can be satisfied via the cache. --> |
||
389 | <queryResultWindowSize>20</queryResultWindowSize> |
||
390 | |||
391 | <!-- Maximum number of documents to cache for any entry in the |
||
392 | queryResultCache. --> |
||
393 | <queryResultMaxDocsCached>200</queryResultMaxDocsCached> |
||
394 | |||
395 | <!-- a newSearcher event is fired whenever a new searcher is being prepared |
||
396 | and there is a current searcher handling requests (aka registered). |
||
397 | It can be used to prime certain caches to prevent long request times for |
||
398 | certain requests. |
||
399 | --> |
||
400 | <!-- QuerySenderListener takes an array of NamedList and executes a |
||
401 | local query request for each NamedList in sequence. --> |
||
402 | <listener event="newSearcher" class="solr.QuerySenderListener"> |
||
403 | <arr name="queries"> |
||
404 | <!-- |
||
405 | <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst> |
||
406 | <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst> |
||
407 | <lst><str name="q">static newSearcher warming query from solrconfig.xml</str></lst> |
||
408 | --> |
||
409 | </arr> |
||
410 | </listener> |
||
411 | |||
412 | <!-- a firstSearcher event is fired whenever a new searcher is being |
||
413 | prepared but there is no current registered searcher to handle |
||
414 | requests or to gain autowarming data from. --> |
||
415 | <listener event="firstSearcher" class="solr.QuerySenderListener"> |
||
416 | <arr name="queries"> |
||
417 | <lst> <str name="q">solr rocks</str><str name="start">0</str><str name="rows">10</str></lst> |
||
418 | <lst><str name="q">static firstSearcher warming query from solrconfig.xml</str></lst> |
||
419 | </arr> |
||
420 | </listener> |
||
421 | |||
422 | <!-- If a search request comes in and there is no current registered searcher, |
||
423 | then immediately register the still warming searcher and use it. If |
||
424 | "false" then all requests will block until the first searcher is done |
||
425 | warming. --> |
||
426 | <useColdSearcher>false</useColdSearcher> |
||
427 | |||
428 | <!-- Maximum number of searchers that may be warming in the background |
||
429 | concurrently. An error is returned if this limit is exceeded. Recommend |
||
430 | 1-2 for read-only slaves, higher for masters w/o cache warming. --> |
||
431 | <maxWarmingSearchers>2</maxWarmingSearchers> |
||
432 | |||
433 | </query> |
||
434 | |||
435 | <!-- |
||
436 | Let the dispatch filter handler /select?qt=XXX |
||
437 | handleSelect=true will use consistent error handling for /select and /update |
||
438 | handleSelect=false will use solr1.1 style error formatting |
||
439 | --> |
||
440 | <requestDispatcher handleSelect="true" > |
||
441 | <!--Make sure your system has some authentication before enabling remote streaming! --> |
||
442 | <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048000" /> |
||
443 | |||
444 | <!-- Set HTTP caching related parameters (for proxy caches and clients). |
||
445 | |||
446 | To get the behaviour of Solr 1.2 (ie: no caching related headers) |
||
447 | use the never304="true" option and do not specify a value for |
||
448 | <cacheControl> |
||
449 | --> |
||
450 | <!-- <httpCaching never304="true"> --> |
||
451 | <httpCaching lastModifiedFrom="openTime" |
||
452 | etagSeed="Solr"> |
||
453 | <!-- lastModFrom="openTime" is the default, the Last-Modified value |
||
454 | (and validation against If-Modified-Since requests) will all be |
||
455 | relative to when the current Searcher was opened. |
||
456 | You can change it to lastModFrom="dirLastMod" if you want the |
||
457 | value to exactly corrispond to when the physical index was last |
||
458 | modified. |
||
459 | |||
460 | etagSeed="..." is an option you can change to force the ETag |
||
461 | header (and validation against If-None-Match requests) to be |
||
462 | differnet even if the index has not changed (ie: when making |
||
463 | significant changes to your config file) |
||
464 | |||
465 | lastModifiedFrom and etagSeed are both ignored if you use the |
||
466 | never304="true" option. |
||
467 | --> |
||
468 | <!-- If you include a <cacheControl> directive, it will be used to |
||
469 | generate a Cache-Control header, as well as an Expires header |
||
470 | if the value contains "max-age=" |
||
471 | |||
472 | By default, no Cache-Control header is generated. |
||
473 | |||
474 | You can use the <cacheControl> option even if you have set |
||
475 | never304="true" |
||
476 | --> |
||
477 | <!-- <cacheControl>max-age=30, public</cacheControl> --> |
||
478 | </httpCaching> |
||
479 | </requestDispatcher> |
||
480 | |||
481 | |||
482 | <!-- requestHandler plugins... incoming queries will be dispatched to the |
||
483 | correct handler based on the path or the qt (query type) param. |
||
484 | Names starting with a '/' are accessed with the a path equal to the |
||
485 | registered name. Names without a leading '/' are accessed with: |
||
486 | http://host/app/select?qt=name |
||
487 | If no qt is defined, the requestHandler that declares default="true" |
||
488 | will be used. |
||
489 | --> |
||
490 | <requestHandler name="standard" class="solr.SearchHandler" default="true"> |
||
491 | <!-- default values for query parameters --> |
||
492 | <lst name="defaults"> |
||
493 | <str name="echoParams">explicit</str> |
||
494 | <str name="fl"> |
||
495 | id,collection,fileDateYearLastModified,fileRelativeDir,fileDateMonthLastModified,fileDateTimeLastModified,fileDateTimeLastModified,fileDateLastModified,url,fileType,fileSizeKB,fileRelativePath,fileRelativeDir,fileName,score |
||
496 | </str> |
||
497 | <!-- |
||
498 | <int name="rows">10</int> |
||
499 | <str name="fl">*</str> |
||
500 | <str name="version">2.1</str> |
||
501 | --> |
||
502 | <!-- example highlighter config, enable per-query with hl=true --> |
||
503 | <str name="hl.fl">fulltext</str> |
||
504 | <!-- for this field, we want no fragmenting, just highlighting --> |
||
505 | <str name="f.fulltext.hl.fragsize">300</str> |
||
506 | <!-- instructs Solr to return the field itself if no query terms are |
||
507 | found --> |
||
508 | <str name="f.name.hl.alternateField">name</str> |
||
509 | <str name="f.fulltext.hl.fragmenter">regex</str> <!-- defined below --> |
||
510 | |||
511 | |||
512 | |||
513 | |||
514 | <!-- omp = Only More Popular --> |
||
515 | <str name="spellcheck.onlyMorePopular">false</str> |
||
516 | <!-- exr = Extended Results --> |
||
517 | <str name="spellcheck.extendedResults">false</str> |
||
518 | <!-- The number of suggestions to return --> |
||
519 | <str name="spellcheck.count">1</str> |
||
520 | </lst> |
||
521 | |||
522 | <arr name="last-components"> |
||
523 | <str>spellcheck</str> |
||
524 | </arr> |
||
525 | </requestHandler> |
||
526 | |||
527 | <!-- Please refer to http://wiki.apache.org/solr/SolrReplication for details on configuring replication --> |
||
528 | <!-- remove the <lst name="master"> section if this is just a slave --> |
||
529 | <!-- remove the <lst name="slave"> section if this is just a master --> |
||
530 | <!-- |
||
531 | <requestHandler name="/replication" class="solr.ReplicationHandler" > |
||
532 | <lst name="master"> |
||
533 | <str name="replicateAfter">commit</str> |
||
534 | <str name="replicateAfter">startup</str> |
||
535 | <str name="confFiles">schema.xml,stopwords.txt</str> |
||
536 | </lst> |
||
537 | <lst name="slave"> |
||
538 | <str name="masterUrl">http://localhost:8983/solr/replication</str> |
||
539 | <str name="pollInterval">00:00:60</str> |
||
540 | </lst> |
||
541 | </requestHandler>--> |
||
542 | |||
543 | <!-- DisMaxRequestHandler allows easy searching across multiple fields |
||
544 | for simple user-entered phrases. It's implementation is now |
||
545 | just the standard SearchHandler with a default query type |
||
546 | of "dismax". |
||
547 | see http://wiki.apache.org/solr/DisMaxRequestHandler |
||
548 | --> |
||
549 | <requestHandler name="dismax" class="solr.SearchHandler" > |
||
550 | <lst name="defaults"> |
||
551 | <str name="defType">dismax</str> |
||
552 | <str name="echoParams">explicit</str> |
||
553 | <float name="tie">0.01</float> |
||
554 | <str name="qf"> |
||
555 | text^1 |
||
556 | </str> |
||
557 | <str name="pf"> |
||
558 | text^1 |
||
559 | </str> |
||
560 | <str name="mm"> |
||
561 | 2<-1 5<-2 6<90% |
||
562 | </str> |
||
563 | <str name="fl"> |
||
564 | id,score,dc_title,dc_creator,dc_subject,dc_date,dc_type,dc_language |
||
565 | </str> |
||
566 | <int name="ps">100</int> |
||
567 | <str name="q.alt">*:*</str> |
||
568 | <!-- example highlighter config, enable per-query with hl=true --> |
||
569 | <str name="hl.fl">fulltext</str> |
||
570 | <!-- for this field, we want no fragmenting, just highlighting --> |
||
571 | <str name="f.fulltext.hl.fragsize">300</str> |
||
572 | <!-- instructs Solr to return the field itself if no query terms are |
||
573 | found --> |
||
574 | <str name="f.name.hl.alternateField">name</str> |
||
575 | <str name="f.fulltext.hl.fragmenter">regex</str> <!-- defined below --> |
||
576 | |||
577 | |||
578 | <!-- omp = Only More Popular --> |
||
579 | <str name="spellcheck.onlyMorePopular">false</str> |
||
580 | <!-- exr = Extended Results --> |
||
581 | <str name="spellcheck.extendedResults">false</str> |
||
582 | <!-- The number of suggestions to return --> |
||
583 | <str name="spellcheck.count">1</str> |
||
584 | </lst> |
||
585 | |||
586 | <arr name="last-components"> |
||
587 | <str>spellcheck</str> |
||
588 | </arr> |
||
589 | </requestHandler> |
||
590 | |||
591 | <!-- Note how you can register the same handler multiple times with |
||
592 | different names (and different init parameters) |
||
593 | --> |
||
594 | <requestHandler name="partitioned" class="solr.SearchHandler" > |
||
595 | <lst name="defaults"> |
||
596 | <str name="defType">dismax</str> |
||
597 | <str name="echoParams">explicit</str> |
||
598 | <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0</str> |
||
599 | <str name="mm">2<-1 5<-2 6<90%</str> |
||
600 | <!-- This is an example of using Date Math to specify a constantly |
||
601 | moving date range in a config... |
||
602 | --> |
||
603 | <str name="bq">incubationdate_dt:[* TO NOW/DAY-1MONTH]^2.2</str> |
||
604 | </lst> |
||
605 | <!-- In addition to defaults, "appends" params can be specified |
||
606 | to identify values which should be appended to the list of |
||
607 | multi-val params from the query (or the existing "defaults"). |
||
608 | |||
609 | In this example, the param "fq=instock:true" will be appended to |
||
610 | any query time fq params the user may specify, as a mechanism for |
||
611 | partitioning the index, independent of any user selected filtering |
||
612 | that may also be desired (perhaps as a result of faceted searching). |
||
613 | |||
614 | NOTE: there is *absolutely* nothing a client can do to prevent these |
||
615 | "appends" values from being used, so don't use this mechanism |
||
616 | unless you are sure you always want it. |
||
617 | --> |
||
618 | <lst name="appends"> |
||
619 | <str name="fq">inStock:true</str> |
||
620 | </lst> |
||
621 | <!-- "invariants" are a way of letting the Solr maintainer lock down |
||
622 | the options available to Solr clients. Any params values |
||
623 | specified here are used regardless of what values may be specified |
||
624 | in either the query, the "defaults", or the "appends" params. |
||
625 | |||
626 | In this example, the facet.field and facet.query params are fixed, |
||
627 | limiting the facets clients can use. Faceting is not turned on by |
||
628 | default - but if the client does specify facet=true in the request, |
||
629 | these are the only facets they will be able to see counts for; |
||
630 | regardless of what other facet.field or facet.query params they |
||
631 | may specify. |
||
632 | |||
633 | NOTE: there is *absolutely* nothing a client can do to prevent these |
||
634 | "invariants" values from being used, so don't use this mechanism |
||
635 | unless you are sure you always want it. |
||
636 | --> |
||
637 | <lst name="invariants"> |
||
638 | <str name="facet.field">cat</str> |
||
639 | <str name="facet.field">manu_exact</str> |
||
640 | <str name="facet.query">price:[* TO 500]</str> |
||
641 | <str name="facet.query">price:[500 TO *]</str> |
||
642 | </lst> |
||
643 | </requestHandler> |
||
644 | |||
645 | |||
646 | <!-- |
||
647 | Search components are registered to SolrCore and used by Search Handlers |
||
648 | |||
649 | By default, the following components are avaliable: |
||
650 | |||
651 | <searchComponent name="query" class="org.apache.solr.handler.component.QueryComponent" /> |
||
652 | <searchComponent name="facet" class="org.apache.solr.handler.component.FacetComponent" /> |
||
653 | <searchComponent name="mlt" class="org.apache.solr.handler.component.MoreLikeThisComponent" /> |
||
654 | <searchComponent name="highlight" class="org.apache.solr.handler.component.HighlightComponent" /> |
||
655 | <searchComponent name="stats" class="org.apache.solr.handler.component.StatsComponent" /> |
||
656 | <searchComponent name="debug" class="org.apache.solr.handler.component.DebugComponent" /> |
||
657 | |||
658 | Default configuration in a requestHandler would look like: |
||
659 | <arr name="components"> |
||
660 | <str>query</str> |
||
661 | <str>facet</str> |
||
662 | <str>mlt</str> |
||
663 | <str>highlight</str> |
||
664 | <str>stats</str> |
||
665 | <str>debug</str> |
||
666 | </arr> |
||
667 | |||
668 | If you register a searchComponent to one of the standard names, that will be used instead. |
||
669 | To insert components before or after the 'standard' components, use: |
||
670 | |||
671 | <arr name="first-components"> |
||
672 | <str>myFirstComponentName</str> |
||
673 | </arr> |
||
674 | |||
675 | <arr name="last-components"> |
||
676 | <str>myLastComponentName</str> |
||
677 | </arr> |
||
678 | --> |
||
679 | |||
680 | <!-- The spell check component can return a list of alternative spelling |
||
681 | suggestions. --> |
||
682 | <searchComponent name="spellcheck" class="solr.SpellCheckComponent"> |
||
683 | |||
684 | <str name="queryAnalyzerFieldType">textSpell</str> |
||
685 | <!--<str name="queryAnalyzerFieldType">text</str>--> |
||
686 | |||
687 | <lst name="spellchecker"> |
||
688 | <str name="name">default</str> |
||
689 | <str name="field">text</str> |
||
690 | <str name="buildOnCommit">true</str> |
||
691 | <str name="spellcheckIndexDir">./spellchecker</str> |
||
692 | </lst> |
||
693 | |||
694 | <!-- a spellchecker that uses a different distance measure |
||
695 | |||
696 | <lst name="spellchecker"> |
||
697 | <str name="name">jarowinkler</str> |
||
698 | <str name="field">text</str> |
||
699 | <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str> |
||
700 | <str name="spellcheckIndexDir">./spellchecker2</str> |
||
701 | </lst> |
||
702 | --> |
||
703 | |||
704 | <!-- a file based spell checker |
||
705 | <lst name="spellchecker"> |
||
706 | <str name="classname">solr.FileBasedSpellChecker</str> |
||
707 | <str name="name">file</str> |
||
708 | <str name="sourceLocation">spellings.txt</str> |
||
709 | <str name="characterEncoding">UTF-8</str> |
||
710 | <str name="spellcheckIndexDir">./spellcheckerFile</str> |
||
711 | </lst> |
||
712 | --> |
||
713 | </searchComponent> |
||
714 | |||
715 | <!-- A request handler utilizing the spellcheck component. |
||
716 | ############################################################################# |
||
717 | NOTE: This is purely as an example. The whole purpose of the |
||
718 | SpellCheckComponent is to hook it into the request handler that handles (i.e. |
||
719 | the standard or dismax SearchHandler) queries such that a separate request is |
||
720 | not needed to get suggestions. |
||
721 | |||
722 | IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS NOT WHAT YOU |
||
723 | WANT FOR YOUR PRODUCTION SYSTEM! |
||
724 | ############################################################################# |
||
725 | --> |
||
726 | <requestHandler name="/spell" class="solr.SearchHandler" lazy="true"> |
||
727 | <lst name="defaults"> |
||
728 | <!-- omp = Only More Popular --> |
||
729 | <str name="spellcheck.onlyMorePopular">false</str> |
||
730 | <!-- exr = Extended Results --> |
||
731 | <str name="spellcheck.extendedResults">false</str> |
||
732 | <!-- The number of suggestions to return --> |
||
733 | <str name="spellcheck.count">1</str> |
||
734 | </lst> |
||
735 | <arr name="last-components"> |
||
736 | <str>spellcheck</str> |
||
737 | </arr> |
||
738 | </requestHandler> |
||
739 | |||
740 | <searchComponent name="tvComponent" class="org.apache.solr.handler.component.TermVectorComponent"/> |
||
741 | <!-- A Req Handler for working with the tvComponent. This is purely as an example. |
||
742 | You will likely want to add the component to your already specified request handlers. --> |
||
743 | <requestHandler name="tvrh" class="org.apache.solr.handler.component.SearchHandler"> |
||
744 | <lst name="defaults"> |
||
745 | <bool name="tv">true</bool> |
||
746 | </lst> |
||
747 | <arr name="last-components"> |
||
748 | <str>tvComponent</str> |
||
749 | </arr> |
||
750 | </requestHandler> |
||
751 | |||
752 | <!-- Clustering Component |
||
753 | http://wiki.apache.org/solr/ClusteringComponent |
||
754 | This relies on third party jars which are not included in the release. |
||
755 | To use this component (and the "/clustering" handler) |
||
756 | Those jars will need to be downloaded, and you'll need to set the |
||
757 | solr.cluster.enabled system property when running solr... |
||
758 | java -Dsolr.clustering.enabled=true -jar start.jar |
||
759 | --> |
||
760 | <searchComponent |
||
761 | name="clusteringComponent" |
||
762 | enable="${solr.clustering.enabled:false}" |
||
763 | class="org.apache.solr.handler.clustering.ClusteringComponent" > |
||
764 | <!-- Declare an engine --> |
||
765 | <lst name="engine"> |
||
766 | <!-- The name, only one can be named "default" --> |
||
767 | <str name="name">default</str> |
||
768 | <!-- |
||
769 | Class name of Carrot2 clustering algorithm. Currently available algorithms are: |
||
770 | |||
771 | * org.carrot2.clustering.lingo.LingoClusteringAlgorithm |
||
772 | * org.carrot2.clustering.stc.STCClusteringAlgorithm |
||
773 | |||
774 | See http://project.carrot2.org/algorithms.html for the algorithm's characteristics. |
||
775 | --> |
||
776 | <str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str> |
||
777 | <!-- |
||
778 | Overriding values for Carrot2 default algorithm attributes. For a description |
||
779 | of all available attributes, see: http://download.carrot2.org/stable/manual/#chapter.components. |
||
780 | Use attribute key as name attribute of str elements below. These can be further |
||
781 | overridden for individual requests by specifying attribute key as request |
||
782 | parameter name and attribute value as parameter value. |
||
783 | --> |
||
784 | <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str> |
||
785 | </lst> |
||
786 | <lst name="engine"> |
||
787 | <str name="name">stc</str> |
||
788 | <str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str> |
||
789 | </lst> |
||
790 | </searchComponent> |
||
791 | <requestHandler name="/clustering" |
||
792 | enable="${solr.clustering.enabled:false}" |
||
793 | class="solr.SearchHandler"> |
||
794 | <lst name="defaults"> |
||
795 | <bool name="clustering">true</bool> |
||
796 | <str name="clustering.engine">default</str> |
||
797 | <bool name="clustering.results">true</bool> |
||
798 | <!-- The title field --> |
||
799 | <str name="carrot.title">dc_title</str> |
||
800 | <str name="carrot.url">id</str> |
||
801 | <!-- The field to cluster on --> |
||
802 | <str name="carrot.snippet">features</str> |
||
803 | <!-- produce summaries --> |
||
804 | <bool name="carrot.produceSummary">true</bool> |
||
805 | <!-- the maximum number of labels per cluster --> |
||
806 | <!--<int name="carrot.numDescriptions">5</int>--> |
||
807 | <!-- produce sub clusters --> |
||
808 | <bool name="carrot.outputSubClusters">true</bool> |
||
809 | </lst> |
||
810 | <arr name="last-components"> |
||
811 | <str>clusteringComponent</str> |
||
812 | </arr> |
||
813 | </requestHandler> |
||
814 | |||
815 | <!-- Solr Cell: http://wiki.apache.org/solr/ExtractingRequestHandler --> |
||
816 | <requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler" startup="lazy"> |
||
817 | <lst name="defaults"> |
||
818 | <!-- All the main content goes into "text"... if you need to return |
||
819 | the extracted text or do highlighting, use a stored field. --> |
||
820 | <str name="fmap.content">text</str> |
||
821 | <str name="lowernames">true</str> |
||
822 | <str name="uprefix">ignored_</str> |
||
823 | |||
824 | <!-- capture link hrefs but ignore div attributes --> |
||
825 | <str name="captureAttr">true</str> |
||
826 | <str name="fmap.a">links</str> |
||
827 | <str name="fmap.div">ignored_</str> |
||
828 | </lst> |
||
829 | </requestHandler> |
||
830 | |||
831 | |||
832 | <!-- A component to return terms and document frequency of those terms. |
||
833 | This component does not yet support distributed search. --> |
||
834 | <searchComponent name="termsComponent" class="org.apache.solr.handler.component.TermsComponent"/> |
||
835 | |||
836 | <requestHandler name="/terms" class="org.apache.solr.handler.component.SearchHandler"> |
||
837 | <lst name="defaults"> |
||
838 | <bool name="terms">true</bool> |
||
839 | </lst> |
||
840 | <arr name="components"> |
||
841 | <str>termsComponent</str> |
||
842 | </arr> |
||
843 | </requestHandler> |
||
844 | |||
845 | |||
846 | <!-- a search component that enables you to configure the top results for |
||
847 | a given query regardless of the normal lucene scoring.--> |
||
848 | <searchComponent name="elevator" class="solr.QueryElevationComponent" > |
||
849 | <!-- pick a fieldType to analyze queries --> |
||
850 | <str name="queryFieldType">string</str> |
||
851 | <str name="config-file">elevate.xml</str> |
||
852 | </searchComponent> |
||
853 | |||
854 | <!-- a request handler utilizing the elevator component --> |
||
855 | <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy"> |
||
856 | <lst name="defaults"> |
||
857 | <str name="echoParams">explicit</str> |
||
858 | </lst> |
||
859 | <arr name="last-components"> |
||
860 | <str>elevator</str> |
||
861 | </arr> |
||
862 | </requestHandler> |
||
863 | |||
864 | |||
865 | <!-- Update request handler. |
||
866 | |||
867 | Note: Since solr1.1 requestHandlers requires a valid content type header if posted in |
||
868 | the body. For example, curl now requires: -H 'Content-type:text/xml; charset=utf-8' |
||
869 | The response format differs from solr1.1 formatting and returns a standard error code. |
||
870 | To enable solr1.1 behavior, remove the /update handler or change its path |
||
871 | --> |
||
872 | <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" /> |
||
873 | |||
874 | |||
875 | <requestHandler name="/update/javabin" class="solr.BinaryUpdateRequestHandler" /> |
||
876 | |||
877 | <!-- |
||
878 | Analysis request handler. Since Solr 1.3. Use to return how a document is analyzed. Useful |
||
879 | for debugging and as a token server for other types of applications. |
||
880 | |||
881 | This is deprecated in favor of the improved DocumentAnalysisRequestHandler and FieldAnalysisRequestHandler |
||
882 | |||
883 | <requestHandler name="/analysis" class="solr.AnalysisRequestHandler" /> |
||
884 | --> |
||
885 | |||
886 | <!-- |
||
887 | An analysis handler that provides a breakdown of the analysis process of provided docuemnts. This handler expects a |
||
888 | (single) content stream with the following format: |
||
889 | |||
890 | <docs> |
||
891 | <doc> |
||
892 | <field name="id">1</field> |
||
893 | <field name="name">The Name</field> |
||
894 | <field name="text">The Text Value</field> |
||
895 | <doc> |
||
896 | <doc>...</doc> |
||
897 | <doc>...</doc> |
||
898 | ... |
||
899 | </docs> |
||
900 | |||
901 | Note: Each document must contain a field which serves as the unique key. This key is used in the returned |
||
902 | response to assoicate an analysis breakdown to the analyzed document. |
||
903 | |||
904 | Like the FieldAnalysisRequestHandler, this handler also supports query analysis by |
||
905 | sending either an "analysis.query" or "q" request paraemter that holds the query text to be analyized. It also |
||
906 | supports the "analysis.showmatch" parameter which when set to true, all field tokens that match the query |
||
907 | tokens will be marked as a "match". |
||
908 | --> |
||
909 | <requestHandler name="/analysis/document" class="solr.DocumentAnalysisRequestHandler" /> |
||
910 | |||
911 | <!-- |
||
912 | RequestHandler that provides much the same functionality as analysis.jsp. Provides the ability |
||
913 | to specify multiple field types and field names in the same request and outputs index-time and |
||
914 | query-time analysis for each of them. |
||
915 | |||
916 | Request parameters are: |
||
917 | analysis.fieldname - The field name whose analyzers are to be used |
||
918 | analysis.fieldtype - The field type whose analyzers are to be used |
||
919 | analysis.fieldvalue - The text for index-time analysis |
||
920 | q (or analysis.q) - The text for query time analysis |
||
921 | analysis.showmatch (true|false) - When set to true and when query analysis is performed, the produced |
||
922 | tokens of the field value analysis will be marked as "matched" for every |
||
923 | token that is produces by the query analysis |
||
924 | --> |
||
925 | <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" /> |
||
926 | |||
927 | |||
928 | <!-- CSV update handler, loaded on demand --> |
||
929 | <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy" /> |
||
930 | |||
931 | |||
932 | <!-- |
||
933 | Admin Handlers - This will register all the standard admin RequestHandlers. Adding |
||
934 | this single handler is equivalent to registering: |
||
935 | |||
936 | <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" /> |
||
937 | <requestHandler name="/admin/system" class="org.apache.solr.handler.admin.SystemInfoHandler" /> |
||
938 | <requestHandler name="/admin/plugins" class="org.apache.solr.handler.admin.PluginInfoHandler" /> |
||
939 | <requestHandler name="/admin/threads" class="org.apache.solr.handler.admin.ThreadDumpHandler" /> |
||
940 | <requestHandler name="/admin/properties" class="org.apache.solr.handler.admin.PropertiesRequestHandler" /> |
||
941 | <requestHandler name="/admin/file" class="org.apache.solr.handler.admin.ShowFileRequestHandler" > |
||
942 | |||
943 | If you wish to hide files under ${solr.home}/conf, explicitly register the ShowFileRequestHandler using: |
||
944 | <requestHandler name="/admin/file" class="org.apache.solr.handler.admin.ShowFileRequestHandler" > |
||
945 | <lst name="invariants"> |
||
946 | <str name="hidden">synonyms.txt</str> |
||
947 | <str name="hidden">anotherfile.txt</str> |
||
948 | </lst> |
||
949 | </requestHandler> |
||
950 | --> |
||
951 | <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" /> |
||
952 | |||
953 | <!-- ping/healthcheck --> |
||
954 | <requestHandler name="/admin/ping" class="PingRequestHandler"> |
||
955 | <lst name="defaults"> |
||
956 | <str name="qt">standard</str> |
||
957 | <str name="q">solrpingquery</str> |
||
958 | <str name="echoParams">all</str> |
||
959 | </lst> |
||
960 | </requestHandler> |
||
961 | |||
962 | <!-- Echo the request contents back to the client --> |
||
963 | <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" > |
||
964 | <lst name="defaults"> |
||
965 | <str name="echoParams">explicit</str> <!-- for all params (including the default etc) use: 'all' --> |
||
966 | <str name="echoHandler">true</str> |
||
967 | </lst> |
||
968 | </requestHandler> |
||
969 | |||
970 | <highlighting> |
||
971 | <!-- Configure the standard fragmenter --> |
||
972 | <!-- This could most likely be commented out in the "default" case --> |
||
973 | <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" default="true"> |
||
974 | <lst name="defaults"> |
||
975 | <int name="hl.fragsize">300</int> |
||
976 | </lst> |
||
977 | </fragmenter> |
||
978 | |||
979 | <!-- A regular-expression-based fragmenter (f.i., for sentence extraction) --> |
||
980 | <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter"> |
||
981 | <lst name="defaults"> |
||
982 | <!-- slightly smaller fragsizes work better because of slop --> |
||
983 | <int name="hl.fragsize">300</int> |
||
984 | <!-- allow 50% slop on fragment sizes --> |
||
985 | <float name="hl.regex.slop">0.5</float> |
||
986 | <!-- a basic sentence pattern --> |
||
987 | <str name="hl.regex.pattern">[-\w ,/\n\"']{20,300}</str> |
||
988 | </lst> |
||
989 | </fragmenter> |
||
990 | |||
991 | <!-- Configure the standard formatter --> |
||
992 | <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" default="true"> |
||
993 | <lst name="defaults"> |
||
994 | <str name="hl.simple.pre"><![CDATA[<em>]]></str> |
||
995 | <str name="hl.simple.post"><![CDATA[</em>]]></str> |
||
996 | </lst> |
||
997 | </formatter> |
||
998 | </highlighting> |
||
999 | |||
1000 | <!-- An example dedup update processor that creates the "id" field on the fly |
||
1001 | based on the hash code of some other fields. This example has overwriteDupes |
||
1002 | set to false since we are using the id field as the signatureField and Solr |
||
1003 | will maintain uniqueness based on that anyway. |
||
1004 | |||
1005 | You have to link the chain to an update handler above to use it ie: |
||
1006 | <requestHandler name="/update "class="solr.XmlUpdateRequestHandler"> |
||
1007 | <lst name="defaults"> |
||
1008 | <str name="update.processor">dedupe</str> |
||
1009 | </lst> |
||
1010 | </requestHandler> |
||
1011 | --> |
||
1012 | <!-- |
||
1013 | <updateRequestProcessorChain name="dedupe"> |
||
1014 | <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory"> |
||
1015 | <bool name="enabled">true</bool> |
||
1016 | <str name="signatureField">id</str> |
||
1017 | <bool name="overwriteDupes">false</bool> |
||
1018 | <str name="fields">name,features,cat</str> |
||
1019 | <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str> |
||
1020 | </processor> |
||
1021 | <processor class="solr.LogUpdateProcessorFactory" /> |
||
1022 | <processor class="solr.RunUpdateProcessorFactory" /> |
||
1023 | </updateRequestProcessorChain> |
||
1024 | --> |
||
1025 | |||
1026 | |||
1027 | <!-- queryResponseWriter plugins... query responses will be written using the |
||
1028 | writer specified by the 'wt' request parameter matching the name of a registered |
||
1029 | writer. |
||
1030 | The "default" writer is the default and will be used if 'wt' is not specified |
||
1031 | in the request. XMLResponseWriter will be used if nothing is specified here. |
||
1032 | The json, python, and ruby writers are also available by default. |
||
1033 | |||
1034 | <queryResponseWriter name="xml" class="org.apache.solr.request.XMLResponseWriter" default="true"/> |
||
1035 | <queryResponseWriter name="json" class="org.apache.solr.request.JSONResponseWriter"/> |
||
1036 | <queryResponseWriter name="python" class="org.apache.solr.request.PythonResponseWriter"/> |
||
1037 | <queryResponseWriter name="ruby" class="org.apache.solr.request.RubyResponseWriter"/> |
||
1038 | <queryResponseWriter name="php" class="org.apache.solr.request.PHPResponseWriter"/> |
||
1039 | <queryResponseWriter name="phps" class="org.apache.solr.request.PHPSerializedResponseWriter"/> |
||
1040 | |||
1041 | <queryResponseWriter name="custom" class="com.example.MyResponseWriter"/> |
||
1042 | --> |
||
1043 | |||
1044 | <!-- XSLT response writer transforms the XML output by any xslt file found |
||
1045 | in Solr's conf/xslt directory. Changes to xslt files are checked for |
||
1046 | every xsltCacheLifetimeSeconds. |
||
1047 | --> |
||
1048 | <queryResponseWriter name="xslt" class="org.apache.solr.request.XSLTResponseWriter"> |
||
1049 | <int name="xsltCacheLifetimeSeconds">5</int> |
||
1050 | </queryResponseWriter> |
||
1051 | |||
1052 | |||
1053 | <!-- example of registering a query parser |
||
1054 | <queryParser name="lucene" class="org.apache.solr.search.LuceneQParserPlugin"/> |
||
1055 | --> |
||
1056 | |||
1057 | <!-- example of registering a custom function parser |
||
1058 | <valueSourceParser name="myfunc" class="com.mycompany.MyValueSourceParser" /> |
||
1059 | --> |
||
1060 | |||
1061 | <!-- config for the admin interface --> |
||
1062 | <admin> |
||
1063 | <defaultQuery>solr</defaultQuery> |
||
1064 | |||
1065 | <!-- configure a healthcheck file for servers behind a loadbalancer |
||
1066 | <healthcheck type="file">server-enabled</healthcheck> |
||
1067 | --> |
||
1068 | </admin> |
||
1069 | |||
1070 | </config> |