mirror of
https://github.com/silverstripe/silverstripe-fulltextsearch
synced 2024-10-22 14:05:29 +02:00
Merge pull request #278 from open-sausages/pulls/3/autosoftcommit
NEW Ensure commits are visible to seachers (fixes #274)
This commit is contained in:
commit
35c9484f05
@ -16,9 +16,9 @@
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!--
|
||||
For more details about configurations options that may appear in
|
||||
this file, see http://wiki.apache.org/solr/SolrConfigXml.
|
||||
this file, see http://wiki.apache.org/solr/SolrConfigXml.
|
||||
-->
|
||||
<config>
|
||||
<!-- In all configuration below, a prefix of "solr." for class names
|
||||
@ -46,19 +46,19 @@
|
||||
instanceDir.
|
||||
|
||||
Please note that <lib/> directives are processed in the order
|
||||
that they appear in your solrconfig.xml file, and are "stacked"
|
||||
on top of each other when building a ClassLoader - so if you have
|
||||
plugin jars with dependencies on other jars, the "lower level"
|
||||
that they appear in your solrconfig.xml file, and are "stacked"
|
||||
on top of each other when building a ClassLoader - so if you have
|
||||
plugin jars with dependencies on other jars, the "lower level"
|
||||
dependency jars should be loaded first.
|
||||
|
||||
If a "./lib" directory exists in your instanceDir, all files
|
||||
found in it are included as if you had used the following
|
||||
syntax...
|
||||
|
||||
|
||||
<lib dir="./lib" />
|
||||
-->
|
||||
|
||||
<!-- A 'dir' option by itself adds any files found in the directory
|
||||
<!-- A 'dir' option by itself adds any files found in the directory
|
||||
to the classpath, this is useful for including all jars in a
|
||||
directory.
|
||||
|
||||
@ -69,11 +69,11 @@
|
||||
If a 'dir' option (with or without a regex) is used and nothing
|
||||
is found that matches, a warning will be logged.
|
||||
|
||||
The examples below can be used to load some solr-contribs along
|
||||
The examples below can be used to load some solr-contribs along
|
||||
with their external dependencies.
|
||||
-->
|
||||
<lib dir="./lib" />
|
||||
|
||||
|
||||
<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
|
||||
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
|
||||
|
||||
@ -86,14 +86,14 @@
|
||||
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
|
||||
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
|
||||
|
||||
<!-- an exact 'path' can be used instead of a 'dir' to specify a
|
||||
specific jar file. This will cause a serious error to be logged
|
||||
<!-- an exact 'path' can be used instead of a 'dir' to specify a
|
||||
specific jar file. This will cause a serious error to be logged
|
||||
if it can't be loaded.
|
||||
-->
|
||||
<!--
|
||||
<lib path="../a-jar-that-does-not-exist.jar" />
|
||||
<lib path="../a-jar-that-does-not-exist.jar" />
|
||||
-->
|
||||
|
||||
|
||||
<!-- Data Directory
|
||||
|
||||
Used to specify an alternate directory to hold all index data
|
||||
@ -105,7 +105,7 @@
|
||||
|
||||
|
||||
<!-- The DirectoryFactory to use for indexes.
|
||||
|
||||
|
||||
solr.StandardDirectoryFactory is filesystem
|
||||
based and tries to pick the best implementation for the current
|
||||
JVM and platform. solr.NRTCachingDirectoryFactory, the default,
|
||||
@ -118,8 +118,8 @@
|
||||
solr.RAMDirectoryFactory is memory based, not
|
||||
persistent, and doesn't work with replication.
|
||||
-->
|
||||
<directoryFactory name="DirectoryFactory"
|
||||
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
|
||||
<directoryFactory name="DirectoryFactory"
|
||||
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
|
||||
|
||||
<!-- The CodecFactory for defining the format of the inverted index.
|
||||
The default implementation is SchemaCodecFactory, which is the official Lucene
|
||||
@ -133,24 +133,24 @@
|
||||
<codecFactory class="solr.SchemaCodecFactory"/>
|
||||
|
||||
<!-- To enable dynamic schema REST APIs, use the following for <schemaFactory>:
|
||||
|
||||
|
||||
<schemaFactory class="ManagedIndexSchemaFactory">
|
||||
<bool name="mutable">true</bool>
|
||||
<str name="managedSchemaResourceName">managed-schema</str>
|
||||
</schemaFactory>
|
||||
|
||||
|
||||
When ManagedIndexSchemaFactory is specified, Solr will load the schema from
|
||||
he resource named in 'managedSchemaResourceName', rather than from schema.xml.
|
||||
Note that the managed schema resource CANNOT be named schema.xml. If the managed
|
||||
schema does not exist, Solr will create it after reading schema.xml, then rename
|
||||
'schema.xml' to 'schema.xml.bak'.
|
||||
|
||||
'schema.xml' to 'schema.xml.bak'.
|
||||
|
||||
Do NOT hand edit the managed schema - external modifications will be ignored and
|
||||
overwritten as a result of schema modification REST API calls.
|
||||
|
||||
When ManagedIndexSchemaFactory is specified with mutable = true, schema
|
||||
modification REST API calls will be allowed; otherwise, error responses will be
|
||||
sent back for these requests.
|
||||
sent back for these requests.
|
||||
-->
|
||||
<schemaFactory class="ClassicIndexSchemaFactory"/>
|
||||
|
||||
@ -158,12 +158,12 @@
|
||||
Index Config - These settings control low-level behavior of indexing
|
||||
Most example settings here show the default value, but are commented
|
||||
out, to more easily see where customizations have been made.
|
||||
|
||||
|
||||
Note: This replaces <indexDefaults> and <mainIndex> from older versions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
||||
<indexConfig>
|
||||
<!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
|
||||
LimitTokenCountFilterFactory in your fieldType definition. E.g.
|
||||
<!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
|
||||
LimitTokenCountFilterFactory in your fieldType definition. E.g.
|
||||
<filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
|
||||
-->
|
||||
<!-- Maximum time to wait for a write lock (ms) for an IndexWriter. Default: 1000 -->
|
||||
@ -175,8 +175,8 @@
|
||||
Default in Solr/Lucene is 8. -->
|
||||
<!-- <maxIndexingThreads>8</maxIndexingThreads> -->
|
||||
|
||||
<!-- Expert: Enabling compound file will use less files for the index,
|
||||
using fewer file descriptors on the expense of performance decrease.
|
||||
<!-- Expert: Enabling compound file will use less files for the index,
|
||||
using fewer file descriptors on the expense of performance decrease.
|
||||
Default in Lucene is "true". Default in Solr is "false" (since 3.6) -->
|
||||
<!-- <useCompoundFile>false</useCompoundFile> -->
|
||||
|
||||
@ -191,7 +191,7 @@
|
||||
<!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
|
||||
<!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
|
||||
|
||||
<!-- Expert: Merge Policy
|
||||
<!-- Expert: Merge Policy
|
||||
The Merge Policy in Lucene controls how merging of segments is done.
|
||||
The default since Solr/Lucene 3.3 is TieredMergePolicy.
|
||||
The default since Lucene 2.3 was the LogByteSizeMergePolicy,
|
||||
@ -203,7 +203,7 @@
|
||||
<int name="segmentsPerTier">10</int>
|
||||
</mergePolicy>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Merge Factor
|
||||
The merge factor controls how many segments will get merged at a time.
|
||||
For TieredMergePolicy, mergeFactor is a convenience parameter which
|
||||
@ -212,7 +212,7 @@
|
||||
will be allowed before they are merged into one.
|
||||
Default is 10 for both merge policies.
|
||||
-->
|
||||
<!--
|
||||
<!--
|
||||
<mergeFactor>10</mergeFactor>
|
||||
-->
|
||||
|
||||
@ -222,15 +222,15 @@
|
||||
can perform merges in the background using separate threads.
|
||||
The SerialMergeScheduler (Lucene 2.2 default) does not.
|
||||
-->
|
||||
<!--
|
||||
<!--
|
||||
<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
|
||||
-->
|
||||
|
||||
<!-- LockFactory
|
||||
<!-- LockFactory
|
||||
|
||||
This option specifies which Lucene LockFactory implementation
|
||||
to use.
|
||||
|
||||
|
||||
single = SingleInstanceLockFactory - suggested for a
|
||||
read-only index or when there is no possibility of
|
||||
another process trying to modify the index.
|
||||
@ -259,7 +259,7 @@
|
||||
<!--
|
||||
<unlockOnStartup>false</unlockOnStartup>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Expert: Controls how often Lucene loads terms into memory
|
||||
Default is 128 and is likely good for most everyone.
|
||||
-->
|
||||
@ -268,7 +268,7 @@
|
||||
<!-- If true, IndexReaders will be reopened (often more efficient)
|
||||
instead of closed and then opened. Default: true
|
||||
-->
|
||||
<!--
|
||||
<!--
|
||||
<reopenReaders>true</reopenReaders>
|
||||
-->
|
||||
|
||||
@ -279,11 +279,11 @@
|
||||
The default Solr IndexDeletionPolicy implementation supports
|
||||
deleting index commit points on number of commits, age of
|
||||
commit point and optimized status.
|
||||
|
||||
|
||||
The latest commit point should always be preserved regardless
|
||||
of the criteria.
|
||||
-->
|
||||
<!--
|
||||
<!--
|
||||
<deletionPolicy class="solr.SolrDeletionPolicy">
|
||||
-->
|
||||
<!-- The number of commit points to be kept -->
|
||||
@ -298,12 +298,12 @@
|
||||
<str name="maxCommitAge">30MINUTES</str>
|
||||
<str name="maxCommitAge">1DAY</str>
|
||||
-->
|
||||
<!--
|
||||
<!--
|
||||
</deletionPolicy>
|
||||
-->
|
||||
|
||||
<!-- Lucene Infostream
|
||||
|
||||
|
||||
To aid in advanced debugging, Lucene provides an "InfoStream"
|
||||
of detailed information when indexing.
|
||||
|
||||
@ -316,7 +316,7 @@
|
||||
|
||||
|
||||
<!-- JMX
|
||||
|
||||
|
||||
This example enables JMX if and only if an existing MBeanServer
|
||||
is found, use this if you want to configure JMX through JVM
|
||||
parameters. Remove this to disable exposing Solr configuration
|
||||
@ -326,7 +326,7 @@
|
||||
-->
|
||||
<jmx />
|
||||
<!-- If you want to connect to a particular server, specify the
|
||||
agentId
|
||||
agentId
|
||||
-->
|
||||
<!-- <jmx agentId="myAgent" /> -->
|
||||
<!-- If you want to start a new MBeanServer, specify the serviceUrl -->
|
||||
@ -341,16 +341,16 @@
|
||||
uncommitted changes to the index, so use of a hard autoCommit
|
||||
is recommended (see below).
|
||||
"dir" - the target directory for transaction logs, defaults to the
|
||||
solr data directory. -->
|
||||
solr data directory. -->
|
||||
<updateLog>
|
||||
<str name="dir">${solr.ulog.dir:}</str>
|
||||
</updateLog>
|
||||
|
||||
|
||||
<!-- AutoCommit
|
||||
|
||||
Perform a hard commit automatically under certain conditions.
|
||||
Instead of enabling autoCommit, consider using "commitWithin"
|
||||
when adding documents.
|
||||
when adding documents.
|
||||
|
||||
http://wiki.apache.org/solr/UpdateXmlMessages
|
||||
|
||||
@ -359,7 +359,7 @@
|
||||
|
||||
maxTime - Maximum amount of time in ms that is allowed to pass
|
||||
since a document was added before automatically
|
||||
triggering a new commit.
|
||||
triggering a new commit.
|
||||
openSearcher - if false, the commit causes recent index changes
|
||||
to be flushed to stable storage, but does not cause a new
|
||||
searcher to be opened to make those changes visible.
|
||||
@ -367,9 +367,9 @@
|
||||
If the updateLog is enabled, then it's highly recommended to
|
||||
have some sort of hard autoCommit to limit the log size.
|
||||
-->
|
||||
<autoCommit>
|
||||
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
|
||||
<openSearcher>false</openSearcher>
|
||||
<autoCommit>
|
||||
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
|
||||
<openSearcher>false</openSearcher>
|
||||
</autoCommit>
|
||||
|
||||
<!-- softAutoCommit is like autoCommit except it causes a
|
||||
@ -378,12 +378,12 @@
|
||||
faster and more near-realtime friendly than a hard commit.
|
||||
-->
|
||||
|
||||
<autoSoftCommit>
|
||||
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
|
||||
<autoSoftCommit>
|
||||
<maxTime>${solr.autoSoftCommit.maxTime:60000}</maxTime>
|
||||
</autoSoftCommit>
|
||||
|
||||
<!-- Update Related Event Listeners
|
||||
|
||||
|
||||
Various IndexWriter related events can trigger Listeners to
|
||||
take actions.
|
||||
|
||||
@ -392,10 +392,10 @@
|
||||
-->
|
||||
<!-- The RunExecutableListener executes an external command from a
|
||||
hook such as postCommit or postOptimize.
|
||||
|
||||
|
||||
exe - the name of the executable to run
|
||||
dir - dir to use as the current working directory. (default=".")
|
||||
wait - the calling thread waits until the executable returns.
|
||||
wait - the calling thread waits until the executable returns.
|
||||
(default="true")
|
||||
args - the arguments to pass to the program. (default is none)
|
||||
env - environment variables to set. (default is none)
|
||||
@ -415,7 +415,7 @@
|
||||
-->
|
||||
|
||||
</updateHandler>
|
||||
|
||||
|
||||
<!-- IndexReaderFactory
|
||||
|
||||
Use the following format to specify a custom IndexReaderFactory,
|
||||
@ -447,7 +447,7 @@
|
||||
be specified.
|
||||
-->
|
||||
<!--
|
||||
<indexReaderFactory name="IndexReaderFactory"
|
||||
<indexReaderFactory name="IndexReaderFactory"
|
||||
class="solr.StandardIndexReaderFactory">
|
||||
<int name="setTermIndexDivisor">12</int>
|
||||
</indexReaderFactory >
|
||||
@ -463,12 +463,12 @@
|
||||
is thrown if exceeded.
|
||||
|
||||
** WARNING **
|
||||
|
||||
|
||||
This option actually modifies a global Lucene property that
|
||||
will affect all SolrCores. If multiple solrconfig.xml files
|
||||
disagree on this property, the value at any given moment will
|
||||
be based on the last SolrCore to be initialized.
|
||||
|
||||
|
||||
-->
|
||||
<maxBooleanClauses>1024</maxBooleanClauses>
|
||||
|
||||
@ -477,7 +477,7 @@
|
||||
|
||||
There are two implementations of cache available for Solr,
|
||||
LRUCache, based on a synchronized LinkedHashMap, and
|
||||
FastLRUCache, based on a ConcurrentHashMap.
|
||||
FastLRUCache, based on a ConcurrentHashMap.
|
||||
|
||||
FastLRUCache has faster gets and slower puts in single
|
||||
threaded operation and thus is generally faster than LRUCache
|
||||
@ -502,7 +502,7 @@
|
||||
initialSize - the initial capacity (number of entries) of
|
||||
the cache. (see java.util.HashMap)
|
||||
autowarmCount - the number of entries to prepopulate from
|
||||
and old cache.
|
||||
and old cache.
|
||||
-->
|
||||
<filterCache class="solr.FastLRUCache"
|
||||
size="512"
|
||||
@ -510,28 +510,28 @@
|
||||
autowarmCount="0"/>
|
||||
|
||||
<!-- Query Result Cache
|
||||
|
||||
|
||||
Caches results of searches - ordered lists of document ids
|
||||
(DocList) based on a query, a sort, and the range of documents requested.
|
||||
(DocList) based on a query, a sort, and the range of documents requested.
|
||||
-->
|
||||
<queryResultCache class="solr.LRUCache"
|
||||
size="512"
|
||||
initialSize="512"
|
||||
autowarmCount="0"/>
|
||||
|
||||
|
||||
<!-- Document Cache
|
||||
|
||||
Caches Lucene Document objects (the stored fields for each
|
||||
document). Since Lucene internal document ids are transient,
|
||||
this cache will not be autowarmed.
|
||||
this cache will not be autowarmed.
|
||||
-->
|
||||
<documentCache class="solr.LRUCache"
|
||||
size="512"
|
||||
initialSize="512"
|
||||
autowarmCount="0"/>
|
||||
|
||||
|
||||
<!-- Field Value Cache
|
||||
|
||||
|
||||
Cache used to hold field values that are quickly accessible
|
||||
by document id. The fieldValueCache is created by default
|
||||
even if not configured here.
|
||||
@ -549,8 +549,8 @@
|
||||
name through SolrIndexSearcher.getCache(),cacheLookup(), and
|
||||
cacheInsert(). The purpose is to enable easy caching of
|
||||
user/application level data. The regenerator argument should
|
||||
be specified as an implementation of solr.CacheRegenerator
|
||||
if autowarming is desired.
|
||||
be specified as an implementation of solr.CacheRegenerator
|
||||
if autowarming is desired.
|
||||
-->
|
||||
<!--
|
||||
<cache name="myUserCache"
|
||||
@ -597,12 +597,12 @@
|
||||
are collected. For example, if a search for a particular query
|
||||
requests matching documents 10 through 19, and queryWindowSize is 50,
|
||||
then documents 0 through 49 will be collected and cached. Any further
|
||||
requests in that range can be satisfied via the cache.
|
||||
requests in that range can be satisfied via the cache.
|
||||
-->
|
||||
<queryResultWindowSize>20</queryResultWindowSize>
|
||||
|
||||
<!-- Maximum number of documents to cache for any entry in the
|
||||
queryResultCache.
|
||||
queryResultCache.
|
||||
-->
|
||||
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
|
||||
|
||||
@ -620,10 +620,10 @@
|
||||
prepared but there is no current registered searcher to handle
|
||||
requests or to gain autowarming data from.
|
||||
|
||||
|
||||
|
||||
-->
|
||||
<!-- QuerySenderListener takes an array of NamedList and executes a
|
||||
local query request for each NamedList in sequence.
|
||||
local query request for each NamedList in sequence.
|
||||
-->
|
||||
<listener event="newSearcher" class="solr.QuerySenderListener">
|
||||
<arr name="queries">
|
||||
@ -651,7 +651,7 @@
|
||||
<useColdSearcher>false</useColdSearcher>
|
||||
|
||||
<!-- Max Warming Searchers
|
||||
|
||||
|
||||
Maximum number of searchers that may be warming in the
|
||||
background concurrently. An error is returned if this limit
|
||||
is exceeded.
|
||||
@ -673,7 +673,7 @@
|
||||
such as /select?qt=XXX
|
||||
|
||||
handleSelect="true" will cause the SolrDispatchFilter to process
|
||||
the request and dispatch the query to a handler specified by the
|
||||
the request and dispatch the query to a handler specified by the
|
||||
"qt" param, assuming "/select" isn't already registered.
|
||||
|
||||
handleSelect="false" will cause the SolrDispatchFilter to
|
||||
@ -695,26 +695,26 @@
|
||||
|
||||
multipartUploadLimitInKB - specifies the max size (in KiB) of
|
||||
Multipart File Uploads that Solr will allow in a Request.
|
||||
|
||||
|
||||
formdataUploadLimitInKB - specifies the max size (in KiB) of
|
||||
form data (application/x-www-form-urlencoded) sent via
|
||||
POST. You can use POST to pass request parameters not
|
||||
fitting into the URL.
|
||||
|
||||
|
||||
addHttpRequestToContext - if set to true, it will instruct
|
||||
the requestParsers to include the original HttpServletRequest
|
||||
object in the context map of the SolrQueryRequest under the
|
||||
object in the context map of the SolrQueryRequest under the
|
||||
key "httpRequest". It will not be used by any of the existing
|
||||
Solr components, but may be useful when developing custom
|
||||
Solr components, but may be useful when developing custom
|
||||
plugins.
|
||||
|
||||
|
||||
*** WARNING ***
|
||||
The settings below authorize Solr to fetch remote files, You
|
||||
should make sure your system has some authentication before
|
||||
using enableRemoteStreaming="true"
|
||||
|
||||
-->
|
||||
<requestParsers enableRemoteStreaming="true"
|
||||
-->
|
||||
<requestParsers enableRemoteStreaming="true"
|
||||
multipartUploadLimitInKB="2048000"
|
||||
formdataUploadLimitInKB="2048"
|
||||
addHttpRequestToContext="false"/>
|
||||
@ -730,21 +730,21 @@
|
||||
<!-- If you include a <cacheControl> directive, it will be used to
|
||||
generate a Cache-Control header (as well as an Expires header
|
||||
if the value contains "max-age=")
|
||||
|
||||
|
||||
By default, no Cache-Control header is generated.
|
||||
|
||||
|
||||
You can use the <cacheControl> option even if you have set
|
||||
never304="true"
|
||||
-->
|
||||
<!--
|
||||
<httpCaching never304="true" >
|
||||
<cacheControl>max-age=30, public</cacheControl>
|
||||
<cacheControl>max-age=30, public</cacheControl>
|
||||
</httpCaching>
|
||||
-->
|
||||
<!-- To enable Solr to respond with automatically generated HTTP
|
||||
Caching headers, and to response to Cache Validation requests
|
||||
correctly, set the value of never304="false"
|
||||
|
||||
|
||||
This will cause Solr to generate Last-Modified and ETag
|
||||
headers based on the properties of the Index.
|
||||
|
||||
@ -769,12 +769,12 @@
|
||||
<!--
|
||||
<httpCaching lastModifiedFrom="openTime"
|
||||
etagSeed="Solr">
|
||||
<cacheControl>max-age=30, public</cacheControl>
|
||||
<cacheControl>max-age=30, public</cacheControl>
|
||||
</httpCaching>
|
||||
-->
|
||||
</requestDispatcher>
|
||||
|
||||
<!-- Request Handlers
|
||||
<!-- Request Handlers
|
||||
|
||||
http://wiki.apache.org/solr/SolrRequestHandler
|
||||
|
||||
@ -863,7 +863,7 @@
|
||||
<str>nameOfCustomComponent2</str>
|
||||
</arr>
|
||||
-->
|
||||
|
||||
|
||||
<arr name="last-components">
|
||||
<str>spellcheck</str>
|
||||
</arr>
|
||||
@ -990,8 +990,8 @@
|
||||
</requestHandler>
|
||||
|
||||
|
||||
<!-- Update Request Handler.
|
||||
|
||||
<!-- Update Request Handler.
|
||||
|
||||
http://wiki.apache.org/solr/UpdateXmlMessages
|
||||
|
||||
The canonical Request Handler for Modifying the Index through
|
||||
@ -1000,11 +1000,11 @@
|
||||
Note: Since solr1.1 requestHandlers requires a valid content
|
||||
type header if posted in the body. For example, curl now
|
||||
requires: -H 'Content-type:text/xml; charset=utf-8'
|
||||
|
||||
To override the request content type and force a specific
|
||||
Content-type, use the request parameter:
|
||||
|
||||
To override the request content type and force a specific
|
||||
Content-type, use the request parameter:
|
||||
?update.contentType=text/csv
|
||||
|
||||
|
||||
This handler will pick a response format to match the input
|
||||
if the 'wt' parameter is not explicit
|
||||
-->
|
||||
@ -1034,10 +1034,10 @@
|
||||
|
||||
<!-- Solr Cell Update Request Handler
|
||||
|
||||
http://wiki.apache.org/solr/ExtractingRequestHandler
|
||||
http://wiki.apache.org/solr/ExtractingRequestHandler
|
||||
|
||||
-->
|
||||
<requestHandler name="/update/extract"
|
||||
<requestHandler name="/update/extract"
|
||||
startup="lazy"
|
||||
class="solr.extraction.ExtractingRequestHandler" >
|
||||
<lst name="defaults">
|
||||
@ -1070,7 +1070,7 @@
|
||||
field value analysis will be marked as "matched" for every
|
||||
token that is produces by the query analysis
|
||||
-->
|
||||
<requestHandler name="/analysis/field"
|
||||
<requestHandler name="/analysis/field"
|
||||
startup="lazy"
|
||||
class="solr.FieldAnalysisRequestHandler" />
|
||||
|
||||
@ -1103,18 +1103,18 @@
|
||||
request parameter that holds the query text to be analyzed. It
|
||||
also supports the "analysis.showmatch" parameter which when set to
|
||||
true, all field tokens that match the query tokens will be marked
|
||||
as a "match".
|
||||
as a "match".
|
||||
-->
|
||||
<requestHandler name="/analysis/document"
|
||||
class="solr.DocumentAnalysisRequestHandler"
|
||||
<requestHandler name="/analysis/document"
|
||||
class="solr.DocumentAnalysisRequestHandler"
|
||||
startup="lazy" />
|
||||
|
||||
<!-- Admin Handlers
|
||||
|
||||
Admin Handlers - This will register all the standard admin
|
||||
RequestHandlers.
|
||||
RequestHandlers.
|
||||
-->
|
||||
<requestHandler name="/admin/"
|
||||
<requestHandler name="/admin/"
|
||||
class="solr.admin.AdminHandlers" />
|
||||
<!-- This single handler is equivalent to the following... -->
|
||||
<!--
|
||||
@ -1126,14 +1126,14 @@
|
||||
<requestHandler name="/admin/file" class="solr.admin.ShowFileRequestHandler" >
|
||||
-->
|
||||
<!-- If you wish to hide files under ${solr.home}/conf, explicitly
|
||||
register the ShowFileRequestHandler using:
|
||||
register the ShowFileRequestHandler using:
|
||||
-->
|
||||
<!--
|
||||
<requestHandler name="/admin/file"
|
||||
<requestHandler name="/admin/file"
|
||||
class="solr.admin.ShowFileRequestHandler" >
|
||||
<lst name="invariants">
|
||||
<str name="hidden">synonyms.txt</str>
|
||||
<str name="hidden">anotherfile.txt</str>
|
||||
<str name="hidden">synonyms.txt</str>
|
||||
<str name="hidden">anotherfile.txt</str>
|
||||
</lst>
|
||||
</requestHandler>
|
||||
-->
|
||||
@ -1146,10 +1146,10 @@
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">all</str>
|
||||
</lst>
|
||||
<!-- An optional feature of the PingRequestHandler is to configure the
|
||||
handler with a "healthcheckFile" which can be used to enable/disable
|
||||
<!-- An optional feature of the PingRequestHandler is to configure the
|
||||
handler with a "healthcheckFile" which can be used to enable/disable
|
||||
the PingRequestHandler.
|
||||
relative paths are resolved against the data dir
|
||||
relative paths are resolved against the data dir
|
||||
-->
|
||||
<!-- <str name="healthcheckFile">server-enabled.txt</str> -->
|
||||
</requestHandler>
|
||||
@ -1157,29 +1157,29 @@
|
||||
<!-- Echo the request contents back to the client -->
|
||||
<requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
|
||||
<lst name="defaults">
|
||||
<str name="echoParams">explicit</str>
|
||||
<str name="echoParams">explicit</str>
|
||||
<str name="echoHandler">true</str>
|
||||
</lst>
|
||||
</requestHandler>
|
||||
|
||||
|
||||
<!-- Solr Replication
|
||||
|
||||
The SolrReplicationHandler supports replicating indexes from a
|
||||
"master" used for indexing and "slaves" used for queries.
|
||||
|
||||
http://wiki.apache.org/solr/SolrReplication
|
||||
http://wiki.apache.org/solr/SolrReplication
|
||||
|
||||
It is also necessary for SolrCloud to function (in Cloud mode, the
|
||||
replication handler is used to bulk transfer segments when nodes
|
||||
replication handler is used to bulk transfer segments when nodes
|
||||
are added or need to recover).
|
||||
|
||||
https://wiki.apache.org/solr/SolrCloud/
|
||||
-->
|
||||
<requestHandler name="/replication" class="solr.ReplicationHandler" >
|
||||
<requestHandler name="/replication" class="solr.ReplicationHandler" >
|
||||
<!--
|
||||
To enable simple master/slave replication, uncomment one of the
|
||||
To enable simple master/slave replication, uncomment one of the
|
||||
sections below, depending on whether this solr instance should be
|
||||
the "master" or a "slave". If this instance is a "slave" you will
|
||||
the "master" or a "slave". If this instance is a "slave" you will
|
||||
also need to fill in the masterUrl to point to a real machine.
|
||||
-->
|
||||
<!--
|
||||
@ -1199,18 +1199,18 @@
|
||||
|
||||
<!-- Search Components
|
||||
|
||||
Search components are registered to SolrCore and used by
|
||||
Search components are registered to SolrCore and used by
|
||||
instances of SearchHandler (which can access them by name)
|
||||
|
||||
|
||||
By default, the following components are available:
|
||||
|
||||
|
||||
<searchComponent name="query" class="solr.QueryComponent" />
|
||||
<searchComponent name="facet" class="solr.FacetComponent" />
|
||||
<searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
|
||||
<searchComponent name="highlight" class="solr.HighlightComponent" />
|
||||
<searchComponent name="stats" class="solr.StatsComponent" />
|
||||
<searchComponent name="debug" class="solr.DebugComponent" />
|
||||
|
||||
|
||||
Default configuration in a requestHandler would look like:
|
||||
|
||||
<arr name="components">
|
||||
@ -1222,28 +1222,28 @@
|
||||
<str>debug</str>
|
||||
</arr>
|
||||
|
||||
If you register a searchComponent to one of the standard names,
|
||||
If you register a searchComponent to one of the standard names,
|
||||
that will be used instead of the default.
|
||||
|
||||
To insert components before or after the 'standard' components, use:
|
||||
|
||||
|
||||
<arr name="first-components">
|
||||
<str>myFirstComponentName</str>
|
||||
</arr>
|
||||
|
||||
|
||||
<arr name="last-components">
|
||||
<str>myLastComponentName</str>
|
||||
</arr>
|
||||
|
||||
NOTE: The component registered with the name "debug" will
|
||||
always be executed after the "last-components"
|
||||
|
||||
always be executed after the "last-components"
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<!-- Spell Check
|
||||
|
||||
The spell check component can return a list of alternative spelling
|
||||
suggestions.
|
||||
suggestions.
|
||||
|
||||
http://wiki.apache.org/solr/SpellCheckComponent
|
||||
-->
|
||||
@ -1302,11 +1302,11 @@
|
||||
<float name="thresholdTokenFrequency">.01</float>
|
||||
-->
|
||||
</lst>
|
||||
|
||||
|
||||
<!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
|
||||
<lst name="spellchecker">
|
||||
<str name="name">wordbreak</str>
|
||||
<str name="classname">solr.WordBreakSolrSpellChecker</str>
|
||||
<str name="classname">solr.WordBreakSolrSpellChecker</str>
|
||||
<str name="field">_text</str>
|
||||
<str name="combineWords">true</str>
|
||||
<str name="breakWords">true</str>
|
||||
@ -1325,7 +1325,7 @@
|
||||
</lst>
|
||||
-->
|
||||
|
||||
<!-- a spellchecker that use an alternate comparator
|
||||
<!-- a spellchecker that use an alternate comparator
|
||||
|
||||
comparatorClass be one of:
|
||||
1. score (default)
|
||||
@ -1352,7 +1352,7 @@
|
||||
-->
|
||||
</searchComponent>
|
||||
|
||||
<!-- A request handler for demonstrating the spellcheck component.
|
||||
<!-- A request handler for demonstrating the spellcheck component.
|
||||
|
||||
NOTE: This is purely as an example. The whole purpose of the
|
||||
SpellCheckComponent is to hook it into the request handler that
|
||||
@ -1361,7 +1361,7 @@
|
||||
|
||||
IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS
|
||||
NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!
|
||||
|
||||
|
||||
See http://wiki.apache.org/solr/SpellCheckComponent for details
|
||||
on the request parameters.
|
||||
-->
|
||||
@ -1375,14 +1375,14 @@
|
||||
<str name="spellcheck.dictionary">default</str>
|
||||
<str name="spellcheck.dictionary">wordbreak</str>
|
||||
<str name="spellcheck">on</str>
|
||||
<str name="spellcheck.extendedResults">true</str>
|
||||
<str name="spellcheck.extendedResults">true</str>
|
||||
<str name="spellcheck.count">10</str>
|
||||
<str name="spellcheck.alternativeTermCount">5</str>
|
||||
<str name="spellcheck.maxResultsForSuggest">5</str>
|
||||
<str name="spellcheck.maxResultsForSuggest">5</str>
|
||||
<str name="spellcheck.collate">true</str>
|
||||
<str name="spellcheck.collateExtendedResults">true</str>
|
||||
<str name="spellcheck.collateExtendedResults">true</str>
|
||||
<str name="spellcheck.maxCollationTries">10</str>
|
||||
<str name="spellcheck.maxCollations">5</str>
|
||||
<str name="spellcheck.maxCollations">5</str>
|
||||
</lst>
|
||||
<arr name="last-components">
|
||||
<str>spellcheck</str>
|
||||
@ -1399,8 +1399,8 @@
|
||||
|
||||
This is purely as an example.
|
||||
|
||||
In reality you will likely want to add the component to your
|
||||
already specified request handlers.
|
||||
In reality you will likely want to add the component to your
|
||||
already specified request handlers.
|
||||
-->
|
||||
<requestHandler name="/tvrh" class="solr.SearchHandler" startup="lazy">
|
||||
<lst name="defaults">
|
||||
@ -1433,11 +1433,11 @@
|
||||
<!-- Class name of Carrot2 clustering algorithm.
|
||||
|
||||
Currently available algorithms are:
|
||||
|
||||
|
||||
* org.carrot2.clustering.lingo.LingoClusteringAlgorithm
|
||||
* org.carrot2.clustering.stc.STCClusteringAlgorithm
|
||||
* org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm
|
||||
|
||||
|
||||
See http://project.carrot2.org/algorithms.html for the
|
||||
algorithm's characteristics.
|
||||
-->
|
||||
@ -1484,8 +1484,8 @@
|
||||
|
||||
This is purely as an example.
|
||||
|
||||
In reality you will likely want to add the component to your
|
||||
already specified request handlers.
|
||||
In reality you will likely want to add the component to your
|
||||
already specified request handlers.
|
||||
-->
|
||||
<requestHandler name="/clustering"
|
||||
startup="lazy"
|
||||
@ -1506,7 +1506,7 @@
|
||||
<!--<int name="carrot.numDescriptions">5</int>-->
|
||||
<!-- produce sub clusters -->
|
||||
<bool name="carrot.outputSubClusters">false</bool>
|
||||
|
||||
|
||||
<str name="defType">edismax</str>
|
||||
<str name="qf">
|
||||
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
|
||||
@ -1514,12 +1514,12 @@
|
||||
<str name="q.alt">*:*</str>
|
||||
<str name="rows">10</str>
|
||||
<str name="fl">*,score</str>
|
||||
</lst>
|
||||
</lst>
|
||||
<arr name="last-components">
|
||||
<str>clustering</str>
|
||||
</arr>
|
||||
</requestHandler>
|
||||
|
||||
|
||||
<!-- Terms Component
|
||||
|
||||
http://wiki.apache.org/solr/TermsComponent
|
||||
@ -1534,7 +1534,7 @@
|
||||
<lst name="defaults">
|
||||
<bool name="terms">true</bool>
|
||||
<bool name="distrib">false</bool>
|
||||
</lst>
|
||||
</lst>
|
||||
<arr name="components">
|
||||
<str>terms</str>
|
||||
</arr>
|
||||
@ -1574,7 +1574,7 @@
|
||||
<highlighting>
|
||||
<!-- Configure the standard fragmenter -->
|
||||
<!-- This could most likely be commented out in the "default" case -->
|
||||
<fragmenter name="gap"
|
||||
<fragmenter name="gap"
|
||||
default="true"
|
||||
class="solr.highlight.GapFragmenter">
|
||||
<lst name="defaults">
|
||||
@ -1582,10 +1582,10 @@
|
||||
</lst>
|
||||
</fragmenter>
|
||||
|
||||
<!-- A regular-expression-based fragmenter
|
||||
(for sentence extraction)
|
||||
<!-- A regular-expression-based fragmenter
|
||||
(for sentence extraction)
|
||||
-->
|
||||
<fragmenter name="regex"
|
||||
<fragmenter name="regex"
|
||||
class="solr.highlight.RegexFragmenter">
|
||||
<lst name="defaults">
|
||||
<!-- slightly smaller fragsizes work better because of slop -->
|
||||
@ -1598,7 +1598,7 @@
|
||||
</fragmenter>
|
||||
|
||||
<!-- Configure the standard formatter -->
|
||||
<formatter name="html"
|
||||
<formatter name="html"
|
||||
default="true"
|
||||
class="solr.highlight.HtmlFormatter">
|
||||
<lst name="defaults">
|
||||
@ -1608,27 +1608,27 @@
|
||||
</formatter>
|
||||
|
||||
<!-- Configure the standard encoder -->
|
||||
<encoder name="html"
|
||||
<encoder name="html"
|
||||
class="solr.highlight.HtmlEncoder" />
|
||||
|
||||
<!-- Configure the standard fragListBuilder -->
|
||||
<fragListBuilder name="simple"
|
||||
<fragListBuilder name="simple"
|
||||
class="solr.highlight.SimpleFragListBuilder"/>
|
||||
|
||||
|
||||
<!-- Configure the single fragListBuilder -->
|
||||
<fragListBuilder name="single"
|
||||
<fragListBuilder name="single"
|
||||
class="solr.highlight.SingleFragListBuilder"/>
|
||||
|
||||
|
||||
<!-- Configure the weighted fragListBuilder -->
|
||||
<fragListBuilder name="weighted"
|
||||
<fragListBuilder name="weighted"
|
||||
default="true"
|
||||
class="solr.highlight.WeightedFragListBuilder"/>
|
||||
|
||||
|
||||
<!-- default tag FragmentsBuilder -->
|
||||
<fragmentsBuilder name="default"
|
||||
<fragmentsBuilder name="default"
|
||||
default="true"
|
||||
class="solr.highlight.ScoreOrderFragmentsBuilder">
|
||||
<!--
|
||||
<!--
|
||||
<lst name="defaults">
|
||||
<str name="hl.multiValuedSeparatorChar">/</str>
|
||||
</lst>
|
||||
@ -1636,7 +1636,7 @@
|
||||
</fragmentsBuilder>
|
||||
|
||||
<!-- multi-colored tag FragmentsBuilder -->
|
||||
<fragmentsBuilder name="colored"
|
||||
<fragmentsBuilder name="colored"
|
||||
class="solr.highlight.ScoreOrderFragmentsBuilder">
|
||||
<lst name="defaults">
|
||||
<str name="hl.tag.pre"><![CDATA[
|
||||
@ -1648,8 +1648,8 @@
|
||||
<str name="hl.tag.post"><![CDATA[</b>]]></str>
|
||||
</lst>
|
||||
</fragmentsBuilder>
|
||||
|
||||
<boundaryScanner name="default"
|
||||
|
||||
<boundaryScanner name="default"
|
||||
default="true"
|
||||
class="solr.highlight.SimpleBoundaryScanner">
|
||||
<lst name="defaults">
|
||||
@ -1657,8 +1657,8 @@
|
||||
<str name="hl.bs.chars">.,!? 	 </str>
|
||||
</lst>
|
||||
</boundaryScanner>
|
||||
|
||||
<boundaryScanner name="breakIterator"
|
||||
|
||||
<boundaryScanner name="breakIterator"
|
||||
class="solr.highlight.BreakIteratorBoundaryScanner">
|
||||
<lst name="defaults">
|
||||
<!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
|
||||
@ -1680,15 +1680,15 @@
|
||||
|
||||
http://wiki.apache.org/solr/UpdateRequestProcessor
|
||||
|
||||
-->
|
||||
-->
|
||||
<!-- Deduplication
|
||||
|
||||
An example dedup update processor that creates the "id" field
|
||||
on the fly based on the hash code of some other fields. This
|
||||
example has overwriteDupes set to false since we are using the
|
||||
id field as the signatureField and Solr will maintain
|
||||
uniqueness based on that anyway.
|
||||
|
||||
uniqueness based on that anyway.
|
||||
|
||||
-->
|
||||
<!--
|
||||
<updateRequestProcessorChain name="dedupe">
|
||||
@ -1703,7 +1703,7 @@
|
||||
<processor class="solr.RunUpdateProcessorFactory" />
|
||||
</updateRequestProcessorChain>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Language identification
|
||||
|
||||
This example update chain identifies the language of the incoming
|
||||
@ -1743,7 +1743,7 @@
|
||||
<processor class="solr.RunUpdateProcessorFactory" />
|
||||
</updateRequestProcessorChain>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Response Writers
|
||||
|
||||
http://wiki.apache.org/solr/QueryResponseWriter
|
||||
@ -1759,7 +1759,7 @@
|
||||
overridden...
|
||||
-->
|
||||
<!--
|
||||
<queryResponseWriter name="xml"
|
||||
<queryResponseWriter name="xml"
|
||||
default="true"
|
||||
class="solr.XMLResponseWriter" />
|
||||
<queryResponseWriter name="json" class="solr.JSONResponseWriter"/>
|
||||
@ -1778,16 +1778,16 @@
|
||||
-->
|
||||
<str name="content-type">text/plain; charset=UTF-8</str>
|
||||
</queryResponseWriter>
|
||||
|
||||
|
||||
<!--
|
||||
Custom response writers can be declared as needed...
|
||||
-->
|
||||
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" startup="lazy"/>
|
||||
|
||||
|
||||
|
||||
<!-- XSLT response writer transforms the XML output by any xslt file found
|
||||
in Solr's conf/xslt directory. Changes to xslt files are checked for
|
||||
every xsltCacheLifetimeSeconds.
|
||||
every xsltCacheLifetimeSeconds.
|
||||
-->
|
||||
<queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
|
||||
<int name="xsltCacheLifetimeSeconds">5</int>
|
||||
@ -1815,11 +1815,11 @@
|
||||
-->
|
||||
<!-- example of registering a custom function parser -->
|
||||
<!--
|
||||
<valueSourceParser name="myfunc"
|
||||
<valueSourceParser name="myfunc"
|
||||
class="com.mycompany.MyValueSourceParser" />
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Document Transformers
|
||||
http://wiki.apache.org/solr/DocTransformers
|
||||
-->
|
||||
@ -1828,12 +1828,12 @@
|
||||
<transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
|
||||
<int name="connection">jdbc://....</int>
|
||||
</transformer>
|
||||
|
||||
|
||||
To add a constant value to all docs, use:
|
||||
<transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
|
||||
<int name="value">5</int>
|
||||
</transformer>
|
||||
|
||||
|
||||
If you want the user to still be able to change it with _value:something_ use this:
|
||||
<transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
|
||||
<double name="defaultValue">5</double>
|
||||
@ -1843,7 +1843,7 @@
|
||||
EditorialMarkerFactory will do exactly that:
|
||||
<transformer name="qecBooster" class="org.apache.solr.response.transform.EditorialMarkerFactory" />
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<!-- Legacy config for the admin interface -->
|
||||
<admin>
|
||||
|
@ -1,13 +1,26 @@
|
||||
# Troubleshooting
|
||||
|
||||
## Newly indexed content only shows in searches after a delay
|
||||
|
||||
First, check how you're running index operations.
|
||||
In many cases where the `queuedjobs` module is installed,
|
||||
saving or publishing a record will create a new index job which needs to complete first.
|
||||
Solr also distinguishes between adding documents to the indexing,
|
||||
committing them, and making them available to new searches.
|
||||
In most cases this happens within a few seconds, but
|
||||
in sometimes it can take up to a minute due to the
|
||||
`autoSoftCommit` configuration setting defaults in your `solrconfig.xml`.
|
||||
To find out more detail, read about
|
||||
[soft vs. hard commits](https://lucidworks.com/post/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/).
|
||||
|
||||
## Common gotchas
|
||||
|
||||
* By default number-letter boundaries are treated as a word boundary. For example, `A1` is two words - `a` and `1` - when Solr parses the search term.
|
||||
* Special characters and operators are not correctly escaped
|
||||
* Multi-word synonym issues
|
||||
* When Dolr indexes are reconfigured and reindexed, their content is trashed and rebuilt
|
||||
* When Solr indexes are reconfigured and reindexed, their content is trashed and rebuilt
|
||||
|
||||
### CWP-specific
|
||||
## CWP-specific
|
||||
|
||||
* `solrconfig.xml` customisations fail silently
|
||||
* Developers aren’t able to test raw queries or see output via the
|
||||
|
Loading…
Reference in New Issue
Block a user