[
https://issues.apache.org/jira/browse/SOLR-9416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Erick Erickson resolved SOLR-9416.
----------------------------------
Resolution: Invalid
first, please raise issues like this on the user's list before raising a JIRA
to be sure it's not pilot error.
In this case you can see the root cause of your problem by the line:
Caused by: java.lang.OutOfMemoryError: Java heap space
You're simply running with too little Java heap allocated for what you're
trying to do. This is not a bug in Solr, but a problem with your environment.
> Exception writing document
> --------------------------
>
> Key: SOLR-9416
> URL: https://issues.apache.org/jira/browse/SOLR-9416
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: clients - java
> Affects Versions: 5.2.1
> Environment: Solr on AIX
> Reporter: Kiran Chowdhury
> Priority: Blocker
>
> We are getting following exception while writting into solr .. its not that
> coming always.. but very freequent.. once we restart solr this problem go
> away but come back again after couple of days ..
> Stack trace from solr admin log ->
> org.apache.solr.common.SolrException: Exception writing document id 41184272
> to the index; possible analysis error.
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:167)
> at
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:955)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:1110)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:706)
> at
> org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:104)
> at
> org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.processUpdate(JsonLoader.java:143)
> at
> org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.load(JsonLoader.java:113)
> at org.apache.solr.handler.loader.JsonLoader.load(JsonLoader.java:76)
> at
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:98)
> at
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at org.eclipse.jetty.server.Server.handle(Server.java:499)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> at
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> at java.lang.Thread.run(Thread.java:785)
> Caused by: org.apache.lucene.store.AlreadyClosedException: this IndexWriter
> is closed
> at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:719)
> at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:733)
> at
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1471)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:239)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:163)
> ... 37 more
> Caused by: java.lang.OutOfMemoryError: Java heap space
> at org.apache.lucene.util.ArrayUtil.grow(ArrayUtil.java:354)
> at
> org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.writeField(CompressingStoredFieldsWriter.java:297)
> at
> org.apache.lucene.index.DefaultIndexingChain.processField(DefaultIndexingChain.java:361)
> at
> org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:300)
> at
> org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:234)
> at
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:450)
> at
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1475)
> ... 39 more
> schema.xml ->
> <?xml version="1.0" encoding="UTF-8" ?>
> <!--
> Licensed to the Apache Software Foundation (ASF) under one or more
> contributor license agreements. See the NOTICE file distributed with
> this work for additional information regarding copyright ownership.
> The ASF licenses this file to You under the Apache License, Version 2.0
> (the "License"); you may not use this file except in compliance with
> the License. You may obtain a copy of the License at
> http://www.apache.org/licenses/LICENSE-2.0
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
> -->
> <!--
> For more details about configurations options that may appear in
> this file, see http://wiki.apache.org/solr/SolrConfigXml.
> -->
> <config>
> <!-- In all configuration below, a prefix of "solr." for class names
> is an alias that causes solr to search appropriate packages,
> including org.apache.solr.(search|update|request|core|analysis)
> You may also specify a fully qualified Java classname if you
> have your own custom plugins.
> -->
> <!-- Controls what version of Lucene various components of Solr
> adhere to. Generally, you want to use the latest version to
> get all bug fixes and improvements. It is highly recommended
> that you fully re-index after changing this setting as it can
> affect both how text is indexed and queried.
> -->
> <luceneMatchVersion>5.2.1</luceneMatchVersion>
> <!-- Data Directory
> Used to specify an alternate directory to hold all index data
> other than the default ./data under the Solr home. If
> replication is in use, this should match the replication
> configuration.
> -->
> <dataDir>${solr.data.dir:}</dataDir>
> <!-- 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,
> wraps solr.StandardDirectoryFactory and caches small files in memory
> for better NRT performance.
> One can force a particular implementation via
> solr.MMapDirectoryFactory,
> solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
> solr.RAMDirectoryFactory is memory based, not
> persistent, and doesn't work with replication.
> -->
> <directoryFactory name="DirectoryFactory"
>
> class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
> </directoryFactory>
> <!-- The CodecFactory for defining the format of the inverted index.
> The default implementation is SchemaCodecFactory, which is the
> official Lucene
> index format, but hooks into the schema to provide per-field
> customization of
> the postings lists and per-document values in the fieldType element
> (postingsFormat/docValuesFormat). Note that most of the alternative
> implementations
> are experimental, so if you choose to customize the index format, it's
> a good
> idea to convert back to the official format e.g. via
> IndexWriter.addIndexes(IndexReader)
> before upgrading to a newer version to avoid unnecessary reindexing.
> -->
> <codecFactory class="solr.SchemaCodecFactory"/>
> <schemaFactory class="ClassicIndexSchemaFactory"/>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 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>
> <!-- 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.
> native = NativeFSLockFactory - uses OS native file locking.
> Do not use when multiple solr webapps in the same
> JVM are attempting to share a single index.
> simple = SimpleFSLockFactory - uses a plain file for locking
> Defaults: 'native' is default for Solr3.6 and later, otherwise
> 'simple' is the default
> More details on the nuances of each LockFactory...
> http://wiki.apache.org/lucene-java/AvailableLockFactories
> -->
> <lockType>${solr.lock.type:native}</lockType>
> <!-- Lucene Infostream
>
> To aid in advanced debugging, Lucene provides an "InfoStream"
> of detailed information when indexing.
> Setting the value to true will instruct the underlying Lucene
> IndexWriter to write its info stream to solr's log. By default,
> this is enabled here, and controlled through log4j.properties.
> -->
> <infoStream>true</infoStream>
> </indexConfig>
> <!-- 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
> and statistics to JMX.
> For more details see http://wiki.apache.org/solr/SolrJmx
> -->
> <jmx />
> <!-- If you want to connect to a particular server, specify the
> agentId
> -->
> <!-- <jmx agentId="myAgent" /> -->
> <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
> <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
> -->
> <!-- The default high-performance update handler -->
> <updateHandler class="solr.DirectUpdateHandler2">
> <!-- Enables a transaction log, used for real-time get, durability, and
> and solr cloud replica recovery. The log can grow as big as
> 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.
> "numVersionBuckets" - sets the number of buckets used to keep
> track of max version values when checking for re-ordered
> updates; increase this value to reduce the cost of
> synchronizing access to version buckets during high-volume
> indexing, this requires 8 bytes (long) * numVersionBuckets
> of heap space per Solr core.
> -->
> <updateLog>
> <str name="dir">${solr.ulog.dir:}</str>
> <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
> </updateLog>
>
> <!-- AutoCommit
> Perform a hard commit automatically under certain conditions.
> Instead of enabling autoCommit, consider using "commitWithin"
> when adding documents.
> http://wiki.apache.org/solr/UpdateXmlMessages
> maxDocs - Maximum number of documents to add since the last
> commit before automatically triggering a new commit.
> maxTime - Maximum amount of time in ms that is allowed to pass
> since a document was added before automatically
> 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.
> 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>
> <!-- softAutoCommit is like autoCommit except it causes a
> 'soft' commit which only ensures that changes are visible
> but does not ensure that data is synced to disk. This is
> faster and more near-realtime friendly than a hard commit.
> -->
> <autoSoftCommit>
> <maxTime>10</maxTime>
> </autoSoftCommit>
> </updateHandler>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Query section - these settings control query time things like caches
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
> <query>
> <!-- Max Boolean Clauses
> Maximum number of clauses in each BooleanQuery, an exception
> 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>
> <!-- Solr Internal Query Caches
> There are two implementations of cache available for Solr,
> LRUCache, based on a synchronized LinkedHashMap, and
> FastLRUCache, based on a ConcurrentHashMap.
> FastLRUCache has faster gets and slower puts in single
> threaded operation and thus is generally faster than LRUCache
> when the hit ratio of the cache is high (> 75%), and may be
> faster under other scenarios on multi-cpu systems.
> -->
> <!-- Filter Cache
> Cache used by SolrIndexSearcher for filters (DocSets),
> unordered sets of *all* documents that match a query. When a
> new searcher is opened, its caches may be prepopulated or
> "autowarmed" using data from caches in the old searcher.
> autowarmCount is the number of items to prepopulate. For
> LRUCache, the autowarmed items will be the most recently
> accessed items.
> Parameters:
> class - the SolrCache implementation LRUCache or
> (LRUCache or FastLRUCache)
> size - the maximum number of entries in the cache
> 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.
> -->
> <filterCache class="solr.FastLRUCache"
> size="512"
> initialSize="512"
> 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.
> Additional supported parameter by LRUCache:
> maxRamMB - the maximum amount of RAM (in MB) that this cache is
> allowed
> to occupy
> -->
> <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.
> -->
> <documentCache class="solr.LRUCache"
> size="512"
> initialSize="512"
> autowarmCount="0"/>
>
> <!-- custom cache currently used by block join -->
> <cache name="perSegFilter"
> class="solr.search.LRUCache"
> size="10"
> initialSize="0"
> autowarmCount="10"
> regenerator="solr.NoOpRegenerator" />
> <!-- Lazy Field Loading
> If true, stored fields that are not requested will be loaded
> lazily. This can result in a significant speed improvement
> if the usual case is to not load all stored fields,
> especially if the skipped fields are large compressed text
> fields.
> -->
> <enableLazyFieldLoading>true</enableLazyFieldLoading>
> <!-- Result Window Size
> An optimization for use with the queryResultCache. When a search
> is requested, a superset of the requested number of document ids
> 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.
> -->
> <queryResultWindowSize>20</queryResultWindowSize>
> <!-- Maximum number of documents to cache for any entry in the
> queryResultCache.
> -->
> <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
> <!-- Use Cold Searcher
> If a search request comes in and there is no current
> registered searcher, then immediately register the still
> warming searcher and use it. If "false" then all requests
> will block until the first searcher is done warming.
> -->
> <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.
> Recommend values of 1-2 for read-only slaves, higher for
> masters w/o cache warming.
> -->
> <maxWarmingSearchers>2</maxWarmingSearchers>
> </query>
> <!-- Request Dispatcher
> This section contains instructions for how the SolrDispatchFilter
> should behave when processing requests for this SolrCore.
> handleSelect is a legacy option that affects the behavior of requests
> 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
> "qt" param, assuming "/select" isn't already registered.
> handleSelect="false" will cause the SolrDispatchFilter to
> ignore "/select" requests, resulting in a 404 unless a handler
> is explicitly registered with the name "/select"
> handleSelect="true" is not recommended for new users, but is the
> default
> for backwards compatibility
> -->
> <requestDispatcher handleSelect="false" >
> <!-- Request Parsing
> These settings indicate how Solr Requests may be parsed, and
> what restrictions may be placed on the ContentStreams from
> those requests
> enableRemoteStreaming - enables use of the stream.file
> and stream.url parameters for specifying remote streams.
> 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
> key "httpRequest". It will not be used by any of the existing
> 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"
> multipartUploadLimitInKB="2048000"
> formdataUploadLimitInKB="2048"
> addHttpRequestToContext="false"/>
> <!-- HTTP Caching
> Set HTTP caching related parameters (for proxy caches and clients).
> The options below instruct Solr not to output any HTTP Caching
> related headers
> -->
> <httpCaching never304="true" />
> </requestDispatcher>
> <!-- Request Handlers
> http://wiki.apache.org/solr/SolrRequestHandler
> Incoming queries will be dispatched to a specific handler by name
> based on the path specified in the request.
> Legacy behavior: If the request path uses "/select" but no Request
> Handler has that name, and if handleSelect="true" has been specified in
> the requestDispatcher, then the Request Handler is dispatched based on
> the qt parameter. Handlers without a leading '/' are accessed this way
> like so: http://host/app/[core/]select?qt=name If no qt is
> given, then the requestHandler that declares default="true" will be
> used or the one named "standard".
> If a Request Handler is declared with startup="lazy", then it will
> not be initialized until the first request that uses it.
> -->
> <!-- SearchHandler
> http://wiki.apache.org/solr/SearchHandler
> For processing Search Queries, the primary Request Handler
> provided with Solr is "SearchHandler" It delegates to a sequent
> of SearchComponents (see below) and supports distributed
> queries across multiple shards
> -->
> <requestHandler name="/select" class="solr.SearchHandler">
> <!-- default values for query parameters can be specified, these
> will be overridden by parameters in the request
> -->
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> <int name="rows">10</int>
> </lst>
> </requestHandler>
> <!-- A request handler that returns indented JSON by default -->
> <requestHandler name="/query" class="solr.SearchHandler">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> <str name="wt">json</str>
> <str name="indent">true</str>
> <str name="df">contenttype</str>
> </lst>
> </requestHandler>
> <!--
> The export request handler is used to export full sorted result sets.
> Do not change these defaults.
> -->
> <requestHandler name="/export" class="solr.SearchHandler">
> <lst name="invariants">
> <str name="rq">{!xport}</str>
> <str name="wt">xsort</str>
> <str name="distrib">false</str>
> </lst>
> <arr name="components">
> <str>query</str>
> </arr>
> </requestHandler>
> <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
> <lst name="defaults">
> <str name="df">contenttype</str>
> </lst>
> </initParams>
> <!-- Field Analysis Request Handler
> RequestHandler that provides much the same functionality as
> analysis.jsp. Provides the ability to specify multiple field
> types and field names in the same request and outputs
> index-time and query-time analysis for each of them.
> Request parameters are:
> analysis.fieldname - field name whose analyzers are to be used
> analysis.fieldtype - field type whose analyzers are to be used
> analysis.fieldvalue - text for index-time analysis
> q (or analysis.q) - text for query time analysis
> analysis.showmatch (true|false) - When set to true and when
> query analysis is performed, the produced tokens of the
> field value analysis will be marked as "matched" for every
> token that is produces by the query analysis
> -->
> <requestHandler name="/analysis/field"
> startup="lazy"
> class="solr.FieldAnalysisRequestHandler" />
> <!-- Document Analysis Handler
> http://wiki.apache.org/solr/AnalysisRequestHandler
> An analysis handler that provides a breakdown of the analysis
> process of provided documents. This handler expects a (single)
> content stream with the following format:
> <docs>
> <doc>
> <field name="id">1</field>
> <field name="name">The Name</field>
> <field name="text">The Text Value</field>
> </doc>
> <doc>...</doc>
> <doc>...</doc>
> ...
> </docs>
> Note: Each document must contain a field which serves as the
> unique key. This key is used in the returned response to associate
> an analysis breakdown to the analyzed document.
> Like the FieldAnalysisRequestHandler, this handler also supports
> query analysis by sending either an "analysis.query" or "q"
> 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".
> -->
> <requestHandler name="/analysis/document"
> class="solr.DocumentAnalysisRequestHandler"
> startup="lazy" />
> <!-- 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="echoHandler">true</str>
> </lst>
> </requestHandler>
>
> <!-- Search Components
> 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" />
>
> -->
> <!-- Terms Component
> http://wiki.apache.org/solr/TermsComponent
> A component to return terms and document frequency of those
> terms
> -->
> <searchComponent name="terms" class="solr.TermsComponent"/>
> <!-- A request handler for demonstrating the terms component -->
> <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
> <lst name="defaults">
> <bool name="terms">true</bool>
> <bool name="distrib">false</bool>
> </lst>
> <arr name="components">
> <str>terms</str>
> </arr>
> </requestHandler>
> <!-- Legacy config for the admin interface -->
> <admin>
> <defaultQuery>*:*</defaultQuery>
> </admin>
> </config>
> solrconfig.xml ->
> <?xml version="1.0" encoding="UTF-8" ?>
> <!--
> Licensed to the Apache Software Foundation (ASF) under one or more
> contributor license agreements. See the NOTICE file distributed with
> this work for additional information regarding copyright ownership.
> The ASF licenses this file to You under the Apache License, Version 2.0
> (the "License"); you may not use this file except in compliance with
> the License. You may obtain a copy of the License at
> http://www.apache.org/licenses/LICENSE-2.0
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
> -->
> <!--
> For more details about configurations options that may appear in
> this file, see http://wiki.apache.org/solr/SolrConfigXml.
> -->
> <config>
> <!-- In all configuration below, a prefix of "solr." for class names
> is an alias that causes solr to search appropriate packages,
> including org.apache.solr.(search|update|request|core|analysis)
> You may also specify a fully qualified Java classname if you
> have your own custom plugins.
> -->
> <!-- Controls what version of Lucene various components of Solr
> adhere to. Generally, you want to use the latest version to
> get all bug fixes and improvements. It is highly recommended
> that you fully re-index after changing this setting as it can
> affect both how text is indexed and queried.
> -->
> <luceneMatchVersion>5.2.1</luceneMatchVersion>
> <!-- Data Directory
> Used to specify an alternate directory to hold all index data
> other than the default ./data under the Solr home. If
> replication is in use, this should match the replication
> configuration.
> -->
> <dataDir>${solr.data.dir:}</dataDir>
> <!-- 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,
> wraps solr.StandardDirectoryFactory and caches small files in memory
> for better NRT performance.
> One can force a particular implementation via
> solr.MMapDirectoryFactory,
> solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
> solr.RAMDirectoryFactory is memory based, not
> persistent, and doesn't work with replication.
> -->
> <directoryFactory name="DirectoryFactory"
>
> class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
> </directoryFactory>
> <!-- The CodecFactory for defining the format of the inverted index.
> The default implementation is SchemaCodecFactory, which is the
> official Lucene
> index format, but hooks into the schema to provide per-field
> customization of
> the postings lists and per-document values in the fieldType element
> (postingsFormat/docValuesFormat). Note that most of the alternative
> implementations
> are experimental, so if you choose to customize the index format, it's
> a good
> idea to convert back to the official format e.g. via
> IndexWriter.addIndexes(IndexReader)
> before upgrading to a newer version to avoid unnecessary reindexing.
> -->
> <codecFactory class="solr.SchemaCodecFactory"/>
> <schemaFactory class="ClassicIndexSchemaFactory"/>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 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>
> <!-- 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.
> native = NativeFSLockFactory - uses OS native file locking.
> Do not use when multiple solr webapps in the same
> JVM are attempting to share a single index.
> simple = SimpleFSLockFactory - uses a plain file for locking
> Defaults: 'native' is default for Solr3.6 and later, otherwise
> 'simple' is the default
> More details on the nuances of each LockFactory...
> http://wiki.apache.org/lucene-java/AvailableLockFactories
> -->
> <lockType>${solr.lock.type:native}</lockType>
> <!-- Lucene Infostream
>
> To aid in advanced debugging, Lucene provides an "InfoStream"
> of detailed information when indexing.
> Setting the value to true will instruct the underlying Lucene
> IndexWriter to write its info stream to solr's log. By default,
> this is enabled here, and controlled through log4j.properties.
> -->
> <infoStream>true</infoStream>
> </indexConfig>
> <!-- 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
> and statistics to JMX.
> For more details see http://wiki.apache.org/solr/SolrJmx
> -->
> <jmx />
> <!-- If you want to connect to a particular server, specify the
> agentId
> -->
> <!-- <jmx agentId="myAgent" /> -->
> <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
> <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
> -->
> <!-- The default high-performance update handler -->
> <updateHandler class="solr.DirectUpdateHandler2">
> <!-- Enables a transaction log, used for real-time get, durability, and
> and solr cloud replica recovery. The log can grow as big as
> 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.
> "numVersionBuckets" - sets the number of buckets used to keep
> track of max version values when checking for re-ordered
> updates; increase this value to reduce the cost of
> synchronizing access to version buckets during high-volume
> indexing, this requires 8 bytes (long) * numVersionBuckets
> of heap space per Solr core.
> -->
> <updateLog>
> <str name="dir">${solr.ulog.dir:}</str>
> <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
> </updateLog>
>
> <!-- AutoCommit
> Perform a hard commit automatically under certain conditions.
> Instead of enabling autoCommit, consider using "commitWithin"
> when adding documents.
> http://wiki.apache.org/solr/UpdateXmlMessages
> maxDocs - Maximum number of documents to add since the last
> commit before automatically triggering a new commit.
> maxTime - Maximum amount of time in ms that is allowed to pass
> since a document was added before automatically
> 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.
> 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>
> <!-- softAutoCommit is like autoCommit except it causes a
> 'soft' commit which only ensures that changes are visible
> but does not ensure that data is synced to disk. This is
> faster and more near-realtime friendly than a hard commit.
> -->
> <autoSoftCommit>
> <maxTime>10</maxTime>
> </autoSoftCommit>
> </updateHandler>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Query section - these settings control query time things like caches
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
> <query>
> <!-- Max Boolean Clauses
> Maximum number of clauses in each BooleanQuery, an exception
> 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>
> <!-- Solr Internal Query Caches
> There are two implementations of cache available for Solr,
> LRUCache, based on a synchronized LinkedHashMap, and
> FastLRUCache, based on a ConcurrentHashMap.
> FastLRUCache has faster gets and slower puts in single
> threaded operation and thus is generally faster than LRUCache
> when the hit ratio of the cache is high (> 75%), and may be
> faster under other scenarios on multi-cpu systems.
> -->
> <!-- Filter Cache
> Cache used by SolrIndexSearcher for filters (DocSets),
> unordered sets of *all* documents that match a query. When a
> new searcher is opened, its caches may be prepopulated or
> "autowarmed" using data from caches in the old searcher.
> autowarmCount is the number of items to prepopulate. For
> LRUCache, the autowarmed items will be the most recently
> accessed items.
> Parameters:
> class - the SolrCache implementation LRUCache or
> (LRUCache or FastLRUCache)
> size - the maximum number of entries in the cache
> 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.
> -->
> <filterCache class="solr.FastLRUCache"
> size="512"
> initialSize="512"
> 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.
> Additional supported parameter by LRUCache:
> maxRamMB - the maximum amount of RAM (in MB) that this cache is
> allowed
> to occupy
> -->
> <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.
> -->
> <documentCache class="solr.LRUCache"
> size="512"
> initialSize="512"
> autowarmCount="0"/>
>
> <!-- custom cache currently used by block join -->
> <cache name="perSegFilter"
> class="solr.search.LRUCache"
> size="10"
> initialSize="0"
> autowarmCount="10"
> regenerator="solr.NoOpRegenerator" />
> <!-- Lazy Field Loading
> If true, stored fields that are not requested will be loaded
> lazily. This can result in a significant speed improvement
> if the usual case is to not load all stored fields,
> especially if the skipped fields are large compressed text
> fields.
> -->
> <enableLazyFieldLoading>true</enableLazyFieldLoading>
> <!-- Result Window Size
> An optimization for use with the queryResultCache. When a search
> is requested, a superset of the requested number of document ids
> 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.
> -->
> <queryResultWindowSize>20</queryResultWindowSize>
> <!-- Maximum number of documents to cache for any entry in the
> queryResultCache.
> -->
> <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
> <!-- Use Cold Searcher
> If a search request comes in and there is no current
> registered searcher, then immediately register the still
> warming searcher and use it. If "false" then all requests
> will block until the first searcher is done warming.
> -->
> <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.
> Recommend values of 1-2 for read-only slaves, higher for
> masters w/o cache warming.
> -->
> <maxWarmingSearchers>2</maxWarmingSearchers>
> </query>
> <!-- Request Dispatcher
> This section contains instructions for how the SolrDispatchFilter
> should behave when processing requests for this SolrCore.
> handleSelect is a legacy option that affects the behavior of requests
> 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
> "qt" param, assuming "/select" isn't already registered.
> handleSelect="false" will cause the SolrDispatchFilter to
> ignore "/select" requests, resulting in a 404 unless a handler
> is explicitly registered with the name "/select"
> handleSelect="true" is not recommended for new users, but is the
> default
> for backwards compatibility
> -->
> <requestDispatcher handleSelect="false" >
> <!-- Request Parsing
> These settings indicate how Solr Requests may be parsed, and
> what restrictions may be placed on the ContentStreams from
> those requests
> enableRemoteStreaming - enables use of the stream.file
> and stream.url parameters for specifying remote streams.
> 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
> key "httpRequest". It will not be used by any of the existing
> 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"
> multipartUploadLimitInKB="2048000"
> formdataUploadLimitInKB="2048"
> addHttpRequestToContext="false"/>
> <!-- HTTP Caching
> Set HTTP caching related parameters (for proxy caches and clients).
> The options below instruct Solr not to output any HTTP Caching
> related headers
> -->
> <httpCaching never304="true" />
> </requestDispatcher>
> <!-- Request Handlers
> http://wiki.apache.org/solr/SolrRequestHandler
> Incoming queries will be dispatched to a specific handler by name
> based on the path specified in the request.
> Legacy behavior: If the request path uses "/select" but no Request
> Handler has that name, and if handleSelect="true" has been specified in
> the requestDispatcher, then the Request Handler is dispatched based on
> the qt parameter. Handlers without a leading '/' are accessed this way
> like so: http://host/app/[core/]select?qt=name If no qt is
> given, then the requestHandler that declares default="true" will be
> used or the one named "standard".
> If a Request Handler is declared with startup="lazy", then it will
> not be initialized until the first request that uses it.
> -->
> <!-- SearchHandler
> http://wiki.apache.org/solr/SearchHandler
> For processing Search Queries, the primary Request Handler
> provided with Solr is "SearchHandler" It delegates to a sequent
> of SearchComponents (see below) and supports distributed
> queries across multiple shards
> -->
> <requestHandler name="/select" class="solr.SearchHandler">
> <!-- default values for query parameters can be specified, these
> will be overridden by parameters in the request
> -->
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> <int name="rows">10</int>
> </lst>
> </requestHandler>
> <!-- A request handler that returns indented JSON by default -->
> <requestHandler name="/query" class="solr.SearchHandler">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> <str name="wt">json</str>
> <str name="indent">true</str>
> <str name="df">contenttype</str>
> </lst>
> </requestHandler>
> <!--
> The export request handler is used to export full sorted result sets.
> Do not change these defaults.
> -->
> <requestHandler name="/export" class="solr.SearchHandler">
> <lst name="invariants">
> <str name="rq">{!xport}</str>
> <str name="wt">xsort</str>
> <str name="distrib">false</str>
> </lst>
> <arr name="components">
> <str>query</str>
> </arr>
> </requestHandler>
> <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
> <lst name="defaults">
> <str name="df">contenttype</str>
> </lst>
> </initParams>
> <!-- Field Analysis Request Handler
> RequestHandler that provides much the same functionality as
> analysis.jsp. Provides the ability to specify multiple field
> types and field names in the same request and outputs
> index-time and query-time analysis for each of them.
> Request parameters are:
> analysis.fieldname - field name whose analyzers are to be used
> analysis.fieldtype - field type whose analyzers are to be used
> analysis.fieldvalue - text for index-time analysis
> q (or analysis.q) - text for query time analysis
> analysis.showmatch (true|false) - When set to true and when
> query analysis is performed, the produced tokens of the
> field value analysis will be marked as "matched" for every
> token that is produces by the query analysis
> -->
> <requestHandler name="/analysis/field"
> startup="lazy"
> class="solr.FieldAnalysisRequestHandler" />
> <!-- Document Analysis Handler
> http://wiki.apache.org/solr/AnalysisRequestHandler
> An analysis handler that provides a breakdown of the analysis
> process of provided documents. This handler expects a (single)
> content stream with the following format:
> <docs>
> <doc>
> <field name="id">1</field>
> <field name="name">The Name</field>
> <field name="text">The Text Value</field>
> </doc>
> <doc>...</doc>
> <doc>...</doc>
> ...
> </docs>
> Note: Each document must contain a field which serves as the
> unique key. This key is used in the returned response to associate
> an analysis breakdown to the analyzed document.
> Like the FieldAnalysisRequestHandler, this handler also supports
> query analysis by sending either an "analysis.query" or "q"
> 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".
> -->
> <requestHandler name="/analysis/document"
> class="solr.DocumentAnalysisRequestHandler"
> startup="lazy" />
> <!-- 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="echoHandler">true</str>
> </lst>
> </requestHandler>
>
> <!-- Search Components
> 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" />
>
> -->
> <!-- Terms Component
> http://wiki.apache.org/solr/TermsComponent
> A component to return terms and document frequency of those
> terms
> -->
> <searchComponent name="terms" class="solr.TermsComponent"/>
> <!-- A request handler for demonstrating the terms component -->
> <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
> <lst name="defaults">
> <bool name="terms">true</bool>
> <bool name="distrib">false</bool>
> </lst>
> <arr name="components">
> <str>terms</str>
> </arr>
> </requestHandler>
> <!-- Legacy config for the admin interface -->
> <admin>
> <defaultQuery>*:*</defaultQuery>
> </admin>
> </config>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]