Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 c84c42bbe -> 238bbe58d


http://git-wip-us.apache.org/repos/asf/ambari/blob/238bbe58/ambari-server/src/test/python/stacks/2.6/configs/ranger-admin-secured.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.6/configs/ranger-admin-secured.json 
b/ambari-server/src/test/python/stacks/2.6/configs/ranger-admin-secured.json
index 5562ea7..a04f9f8 100644
--- a/ambari-server/src/test/python/stacks/2.6/configs/ranger-admin-secured.json
+++ b/ambari-server/src/test/python/stacks/2.6/configs/ranger-admin-secured.json
@@ -53,7 +53,8 @@
         "admin-log4j": {}, 
         "tagsync-log4j": {}, 
         "ranger-hdfs-security": {}, 
-        "usersync-properties": {}, 
+        "ranger-solr-configuration": {},
+        "usersync-properties": {},
         "zookeeper-env": {},
         "infra-solr-env": {},
         "infra-solr-client-log4j": {},
@@ -97,7 +98,10 @@
         }, 
         "ranger-ugsync-site": {
             "tag": "version1467016680537"
-        }, 
+        },
+        "ranger-solr-configuration": {
+            "tag": "version1467016680537"
+        },
         "ranger-hdfs-plugin-properties": {
             "tag": "version1466705299922"
         }, 
@@ -335,7 +339,7 @@
             "ranger.truststore.password": "changeit", 
             "ranger.ldap.bind.password": 
"{{ranger_usersync_ldap_ldapbindpassword}}", 
             "ranger.audit.solr.password": "NONE", 
-            "ranger.audit.solr.zookeepers": 
"c6401.ambari.apache.org:2181/ambari-solr", 
+            "ranger.audit.solr.zookeepers": 
"c6401.ambari.apache.org:2181/infra-solr",
             "ranger.lookup.kerberos.principal": 
"rangerlookup/_h...@example.com",
             "ranger.service.https.port": "6182", 
             "ranger.plugins.storm.serviceuser": "storm", 
@@ -473,7 +477,12 @@
             "db_host": "c6401.ambari.apache.org", 
             "db_root_password": "vagrant", 
             "SQL_CONNECTOR_JAR": "{{driver_curl_target}}"
-        }, 
+        },
+        "ranger-solr-configuration": {
+            "ranger_audit_max_retention_days": "90",
+            "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--\n 
Licensed to the Apache Software Foundation (ASF) under one or more\n 
contributor license agreements.  See the NOTICE file distributed with\n this 
work for additional information regarding copyright ownership.\n The ASF 
licenses this file to You under the Apache License, Version 2.0\n (the 
\"License\"); you may not use this file except in compliance with\n the 
License.  You may obtain a copy of the License at\n\n     
http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable 
law or agreed to in writing, software\n distributed under the License is 
distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express or implied.\n See the License for the specific language 
governing permissions and\n limitations under the License.\n-->\n\n<!--\n     
For more details about configurations options that may appear in\n     this 
file, see http://wiki.apache.org/solr/SolrC
 onfigXml.\n-->\n<config>\n  <!-- In all configuration below, a prefix of 
\"solr.\" for class names\n       is an alias that causes solr to search 
appropriate packages,\n       including 
org.apache.solr.(search|update|request|core|analysis)\n\n       You may also 
specify a fully qualified Java classname if you\n       have your own custom 
plugins.\n    -->\n\n  <!-- Controls what version of Lucene various components 
of Solr\n       adhere to.  Generally, you want to use the latest version to\n  
     get all bug fixes and improvements. It is highly recommended\n       that 
you fully re-index after changing this setting as it can\n       affect both 
how text is indexed and queried.\n  -->\n  
<luceneMatchVersion>5.0.0</luceneMatchVersion>\n\n  <!-- <lib/> directives can 
be used to instruct Solr to load any Jars\n       identified and use them to 
resolve any \"plugins\" specified in\n       your solrconfig.xml or schema.xml 
(ie: Analyzers, Request\n       Handlers, etc...).\n\n       All
  directories and paths are resolved relative to the\n       instanceDir.\n\n   
    Please note that <lib/> directives are processed in the order\n       that 
they appear in your solrconfig.xml file, and are \"stacked\"\n       on top of 
each other when building a ClassLoader - so if you have\n       plugin jars 
with dependencies on other jars, the \"lower level\"\n       dependency jars 
should be loaded first.\n\n       If a \"./lib\" directory exists in your 
instanceDir, all files\n       found in it are included as if you had used the 
following\n       syntax...\n\n              <lib dir=\"./lib\" />\n    -->\n\n 
 <!-- A 'dir' option by itself adds any files found in the directory\n       to 
the classpath, this is useful for including all jars in a\n       
directory.\n\n       When a 'regex' is specified in addition to a 'dir', only 
the\n       files in that directory which completely match the regex\n       
(anchored on both ends) will be included.\n\n       If a 'dir' option (wi
 th or without a regex) is used and nothing\n       is found that matches, a 
warning will be logged.\n\n       The examples below can be used to load some 
solr-contribs along\n       with their external dependencies.\n    -->\n  <lib 
dir=\"${solr.install.dir:../../../..}/dist/\" 
regex=\"solr-dataimporthandler-.*\\.jar\" />\n\n  <lib 
dir=\"${solr.install.dir:../../../..}/contrib/extraction/lib\" 
regex=\".*\\.jar\" />\n  <lib dir=\"${solr.install.dir:../../../..}/dist/\" 
regex=\"solr-cell-\\d.*\\.jar\" />\n\n  <lib 
dir=\"${solr.install.dir:../../../..}/contrib/clustering/lib/\" 
regex=\".*\\.jar\" />\n  <lib dir=\"${solr.install.dir:../../../..}/dist/\" 
regex=\"solr-clustering-\\d.*\\.jar\" />\n\n  <lib 
dir=\"${solr.install.dir:../../../..}/contrib/langid/lib/\" regex=\".*\\.jar\" 
/>\n  <lib dir=\"${solr.install.dir:../../../..}/dist/\" 
regex=\"solr-langid-\\d.*\\.jar\" />\n\n  <lib 
dir=\"${solr.install.dir:../../../..}/contrib/velocity/lib\" regex=\".*\\.jar\" 
/>\n  <lib dir=\"${solr.i
 nstall.dir:../../../..}/dist/\" regex=\"solr-velocity-\\d.*\\.jar\" />\n\n  
<!-- an exact 'path' can be used instead of a 'dir' to specify a\n       
specific jar file.  This will cause a serious error to be logged\n       if it 
can't be loaded.\n    -->\n  <!--\n     <lib 
path=\"../a-jar-that-does-not-exist.jar\" />\n  -->\n\n  <!-- Data 
Directory\n\n       Used to specify an alternate directory to hold all index 
data\n       other than the default ./data under the Solr home.  If\n       
replication is in use, this should match the replication\n       
configuration.\n    -->\n  <dataDir>${solr.data.dir:}</dataDir>\n\n\n  <!-- The 
DirectoryFactory to use for indexes.\n\n       solr.StandardDirectoryFactory is 
filesystem\n       based and tries to pick the best implementation for the 
current\n       JVM and platform.  solr.NRTCachingDirectoryFactory, the 
default,\n       wraps solr.StandardDirectoryFactory and caches small files in 
memory\n       for better NRT performance.\n\n       
 One can force a particular implementation via solr.MMapDirectoryFactory,\n     
  solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.\n\n       
solr.RAMDirectoryFactory is memory based, not\n       persistent, and doesn't 
work with replication.\n    -->\n  <directoryFactory 
name=\"DirectoryFactory\"\n                    
class=\"${solr.directoryFactory:solr.NRTCachingDirectoryFactory}\">\n\n\n    
<!-- These will be used if you are using the solr.HdfsDirectoryFactory,\n       
  otherwise they will be ignored. If you don't plan on using hdfs,\n         
you can safely remove this section. -->\n    <!-- The root directory that 
collection data should be written to. -->\n    <str 
name=\"solr.hdfs.home\">${solr.hdfs.home:}</str>\n    <!-- The hadoop 
configuration files to use for the hdfs client. -->\n    <str 
name=\"solr.hdfs.confdir\">${solr.hdfs.confdir:}</str>\n    <!-- Enable/Disable 
the hdfs cache. -->\n    <str 
name=\"solr.hdfs.blockcache.enabled\">${solr.hdfs.blockcache.ena
 bled:true}</str>\n    <!-- Enable/Disable using one global cache for all 
SolrCores.\n         The settings used will be from the first 
HdfsDirectoryFactory created. -->\n    <str 
name=\"solr.hdfs.blockcache.global\">${solr.hdfs.blockcache.global:true}</str>\n\n
  </directoryFactory>\n\n  <!-- The CodecFactory for defining the format of the 
inverted index.\n       The default implementation is SchemaCodecFactory, which 
is the official Lucene\n       index format, but hooks into the schema to 
provide per-field customization of\n       the postings lists and per-document 
values in the fieldType element\n       (postingsFormat/docValuesFormat). Note 
that most of the alternative implementations\n       are experimental, so if 
you choose to customize the index format, it's a good\n       idea to convert 
back to the official format e.g. via IndexWriter.addIndexes(IndexReader)\n      
 before upgrading to a newer version to avoid unnecessary reindexing.\n  -->\n  
<codecFactory class=\"solr.Sc
 hemaCodecFactory\"/>\n\n  <!-- To enable dynamic schema REST APIs, use the 
following for <schemaFactory>: -->\n\n       <schemaFactory 
class=\"ManagedIndexSchemaFactory\">\n         <bool 
name=\"mutable\">true</bool>\n         <str 
name=\"managedSchemaResourceName\">managed-schema</str>\n       
</schemaFactory>\n<!--\n       When ManagedIndexSchemaFactory is specified, 
Solr will load the schema from\n       the resource named in 
'managedSchemaResourceName', rather than from schema.xml.\n       Note that the 
managed schema resource CANNOT be named schema.xml.  If the managed\n       
schema does not exist, Solr will create it after reading schema.xml, then 
rename\n       'schema.xml' to 'schema.xml.bak'.\n\n       Do NOT hand edit the 
managed schema - external modifications will be ignored and\n       overwritten 
as a result of schema modification REST API calls.\n\n       When 
ManagedIndexSchemaFactory is specified with mutable = true, schema\n       
modification REST API calls will 
 be allowed; otherwise, error responses will be\n       sent back for these 
requests.\n\n  <schemaFactory class=\"ClassicIndexSchemaFactory\"/>\n  -->\n\n  
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n    
   Index Config - These settings control low-level behavior of indexing\n       
Most example settings here show the default value, but are commented\n       
out, to more easily see where customizations have been made.\n\n       Note: 
This replaces <indexDefaults> and <mainIndex> from older versions\n       
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->\n  
<indexConfig>\n    <!-- maxFieldLength was removed in 4.0. To get similar 
behavior, include a\n         LimitTokenCountFilterFactory in your fieldType 
definition. E.g.\n     <filter class=\"solr.LimitTokenCountFilterFactory\" 
maxTokenCount=\"10000\"/>\n    -->\n    <!-- Maximum time to wait for a write 
lock (ms) for an IndexWriter. Default: 1000 -->\n    <!-- <writeLockTimeo
 ut>1000</writeLockTimeout>  -->\n\n    <!-- The maximum number of simultaneous 
threads that may be\n         indexing documents at once in IndexWriter; if 
more than this\n         many threads arrive they will wait for others to 
finish.\n         Default in Solr/Lucene is 8. -->\n    <!-- 
<maxIndexingThreads>8</maxIndexingThreads>  -->\n\n    <!-- Expert: Enabling 
compound file will use less files for the index,\n         using fewer file 
descriptors on the expense of performance decrease.\n         Default in Lucene 
is \"true\". Default in Solr is \"false\" (since 3.6) -->\n    <!-- 
<useCompoundFile>false</useCompoundFile> -->\n\n    <!-- ramBufferSizeMB sets 
the amount of RAM that may be used by Lucene\n         indexing for buffering 
added documents and deletions before they are\n         flushed to the 
Directory.\n         maxBufferedDocs sets a limit on the number of documents 
buffered\n         before flushing.\n         If both ramBufferSizeMB and 
maxBufferedDocs is set, then
 \n         Lucene will flush based on whichever limit is hit first.\n         
The default is 100 MB.  -->\n    <!-- <ramBufferSizeMB>100</ramBufferSizeMB> 
-->\n    <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->\n\n    <!-- Expert: 
Merge Policy\n         The Merge Policy in Lucene controls how merging of 
segments is done.\n         The default since Solr/Lucene 3.3 is 
TieredMergePolicy.\n         The default since Lucene 2.3 was the 
LogByteSizeMergePolicy,\n         Even older versions of Lucene used 
LogDocMergePolicy.\n      -->\n    <!--\n        <mergePolicy 
class=\"org.apache.lucene.index.TieredMergePolicy\">\n          <int 
name=\"maxMergeAtOnce\">10</int>\n          <int 
name=\"segmentsPerTier\">10</int>\n        </mergePolicy>\n      -->\n\n    
<!-- Merge Factor\n         The merge factor controls how many segments will 
get merged at a time.\n         For TieredMergePolicy, mergeFactor is a 
convenience parameter which\n         will set both MaxMergeAtOnce and 
SegmentsPerTie
 r at once.\n         For LogByteSizeMergePolicy, mergeFactor decides how many 
new segments\n         will be allowed before they are merged into one.\n       
  Default is 10 for both merge policies.\n      -->\n    <!--\n    
<mergeFactor>10</mergeFactor>\n      -->\n\n    <!-- Ranger customization. Set 
to 5 to trigger purging of deleted documents more often -->\n    
<mergeFactor>{{ranger_audit_logs_merge_factor}}</mergeFactor>\n\n    <!-- 
Expert: Merge Scheduler\n         The Merge Scheduler in Lucene controls how 
merges are\n         performed.  The ConcurrentMergeScheduler (Lucene 2.3 
default)\n         can perform merges in the background using separate 
threads.\n         The SerialMergeScheduler (Lucene 2.2 default) does not.\n    
 -->\n    <!--\n       <mergeScheduler 
class=\"org.apache.lucene.index.ConcurrentMergeScheduler\"/>\n       -->\n\n    
<!-- LockFactory\n\n         This option specifies which Lucene LockFactory 
implementation\n         to use.\n\n         single = Sin
 gleInstanceLockFactory - suggested for a\n                  read-only index or 
when there is no possibility of\n                  another process trying to 
modify the index.\n         native = NativeFSLockFactory - uses OS native file 
locking.\n                  Do not use when multiple solr webapps in the same\n 
                 JVM are attempting to share a single index.\n         simple = 
SimpleFSLockFactory  - uses a plain file for locking\n\n         Defaults: 
'native' is default for Solr3.6 and later, otherwise\n                   
'simple' is the default\n\n         More details on the nuances of each 
LockFactory...\n         
http://wiki.apache.org/lucene-java/AvailableLockFactories\n    -->\n    
<lockType>${solr.lock.type:native}</lockType>\n\n    <!-- Unlock On Startup\n\n 
        If true, unlock any held write or commit locks on startup.\n         
This defeats the locking mechanism that allows multiple\n         processes to 
safely access a lucene index, and should be used\
 n         with care. Default is \"false\".\n\n         This is not needed if 
lock type is 'single'\n     -->\n    <!--\n    
<unlockOnStartup>false</unlockOnStartup>\n      -->\n\n    <!-- Commit Deletion 
Policy\n         Custom deletion policies can be specified here. The class 
must\n         implement org.apache.lucene.index.IndexDeletionPolicy.\n\n       
  The default Solr IndexDeletionPolicy implementation supports\n         
deleting index commit points on number of commits, age of\n         commit 
point and optimized status.\n\n         The latest commit point should always 
be preserved regardless\n         of the criteria.\n    -->\n    <!--\n    
<deletionPolicy class=\"solr.SolrDeletionPolicy\">\n    -->\n      <!-- The 
number of commit points to be kept -->\n      <!-- <str 
name=\"maxCommitsToKeep\">1</str> -->\n      <!-- The number of optimized 
commit points to be kept -->\n      <!-- <str 
name=\"maxOptimizedCommitsToKeep\">0</str> -->\n      <!--\n          Delete 
all comm
 it points once they have reached the given age.\n          Supports 
DateMathParser syntax e.g.\n        -->\n      <!--\n         <str 
name=\"maxCommitAge\">30MINUTES</str>\n         <str 
name=\"maxCommitAge\">1DAY</str>\n      -->\n    <!--\n    </deletionPolicy>\n  
  -->\n\n    <!-- Lucene Infostream\n\n         To aid in advanced debugging, 
Lucene provides an \"InfoStream\"\n         of detailed information when 
indexing.\n\n         Setting the value to true will instruct the underlying 
Lucene\n         IndexWriter to write its info stream to solr's log. By 
default,\n         this is enabled here, and controlled through 
log4j.properties.\n      -->\n     <infoStream>true</infoStream>\n  
</indexConfig>\n\n\n  <!-- JMX\n\n       This example enables JMX if and only 
if an existing MBeanServer\n       is found, use this if you want to configure 
JMX through JVM\n       parameters. Remove this to disable exposing Solr 
configuration\n       and statistics to JMX.\n\n       For more det
 ails see http://wiki.apache.org/solr/SolrJmx\n    -->\n  <jmx />\n  <!-- If 
you want to connect to a particular server, specify the\n       agentId\n    
-->\n  <!-- <jmx agentId=\"myAgent\" /> -->\n  <!-- If you want to start a new 
MBeanServer, specify the serviceUrl -->\n  <!-- <jmx 
serviceUrl=\"service:jmx:rmi:///jndi/rmi://localhost:9999/solr\"/>\n    -->\n\n 
 <!-- The default high-performance update handler -->\n  <updateHandler 
class=\"solr.DirectUpdateHandler2\">\n\n    <!-- Enables a transaction log, 
used for real-time get, durability, and\n         and solr cloud replica 
recovery.  The log can grow as big as\n         uncommitted changes to the 
index, so use of a hard autoCommit\n         is recommended (see below).\n      
   \"dir\" - the target directory for transaction logs, defaults to the\n       
         solr data directory.  -->\n    <updateLog>\n      <str 
name=\"dir\">${solr.ulog.dir:}</str>\n    </updateLog>\n\n    <!-- 
AutoCommit\n\n         Perform a hard commit 
 automatically under certain conditions.\n         Instead of enabling 
autoCommit, consider using \"commitWithin\"\n         when adding 
documents.\n\n         http://wiki.apache.org/solr/UpdateXmlMessages\n\n        
 maxDocs - Maximum number of documents to add since the last\n                  
 commit before automatically triggering a new commit.\n\n         maxTime - 
Maximum amount of time in ms that is allowed to pass\n                   since 
a document was added before automatically\n                   triggering a new 
commit.\n         openSearcher - if false, the commit causes recent index 
changes\n           to be flushed to stable storage, but does not cause a new\n 
          searcher to be opened to make those changes visible.\n\n         If 
the updateLog is enabled, then it's highly recommended to\n         have some 
sort of hard autoCommit to limit the log size.\n      -->\n     <autoCommit>\n  
     <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>\n       <openSearche
 r>false</openSearcher>\n     </autoCommit>\n\n    <!-- softAutoCommit is like 
autoCommit except it causes a\n         'soft' commit which only ensures that 
changes are visible\n         but does not ensure that data is synced to disk.  
This is\n         faster and more near-realtime friendly than a hard commit.\n  
    -->\n\n     <autoSoftCommit>\n       
<maxTime>${solr.autoSoftCommit.maxTime:5000}</maxTime>\n     
</autoSoftCommit>\n\n    <!-- Update Related Event Listeners\n\n         
Various IndexWriter related events can trigger Listeners to\n         take 
actions.\n\n         postCommit - fired after every commit or optimize 
command\n         postOptimize - fired after every optimize command\n      
-->\n    <!-- The RunExecutableListener executes an external command from a\n   
      hook such as postCommit or postOptimize.\n\n         exe - the name of 
the executable to run\n         dir - dir to use as the current working 
directory. (default=\".\")\n         wait - the calling 
 thread waits until the executable returns.\n                
(default=\"true\")\n         args - the arguments to pass to the program.  
(default is none)\n         env - environment variables to set.  (default is 
none)\n      -->\n    <!-- This example shows how RunExecutableListener could 
be used\n         with the script based replication...\n         
http://wiki.apache.org/solr/CollectionDistribution\n      -->\n    <!--\n       
<listener event=\"postCommit\" class=\"solr.RunExecutableListener\">\n         
<str name=\"exe\">solr/bin/snapshooter</str>\n         <str 
name=\"dir\">.</str>\n         <bool name=\"wait\">true</bool>\n         <arr 
name=\"args\"> <str>arg1</str> <str>arg2</str> </arr>\n         <arr 
name=\"env\"> <str>MYVAR=val1</str> </arr>\n       </listener>\n      -->\n\n  
</updateHandler>\n\n  <!-- IndexReaderFactory\n\n       Use the following 
format to specify a custom IndexReaderFactory,\n       which allows for 
alternate IndexReader implementations.\n\n       **
  Experimental Feature **\n\n       Please note - Using a custom 
IndexReaderFactory may prevent\n       certain other features from working. The 
API to\n       IndexReaderFactory may change without warning or may even be\n   
    removed from future releases if the problems cannot be\n       
resolved.\n\n\n       ** Features that may not work with custom 
IndexReaderFactory **\n\n       The ReplicationHandler assumes a disk-resident 
index. Using a\n       custom IndexReader implementation may cause 
incompatibility\n       with ReplicationHandler and may cause replication to 
not work\n       correctly. See SOLR-1366 for details.\n\n    -->\n  <!--\n  
<indexReaderFactory name=\"IndexReaderFactory\" class=\"package.class\">\n    
<str name=\"someArg\">Some Value</str>\n  </indexReaderFactory >\n  -->\n\n  
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n    
   Query section - these settings control query time things like caches\n       
~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->\n  <query>\n    <!-- Max 
Boolean Clauses\n\n         Maximum number of clauses in each BooleanQuery,  an 
exception\n         is thrown if exceeded.\n\n         ** WARNING **\n\n        
 This option actually modifies a global Lucene property that\n         will 
affect all SolrCores.  If multiple solrconfig.xml files\n         disagree on 
this property, the value at any given moment will\n         be based on the 
last SolrCore to be initialized.\n\n      -->\n    
<maxBooleanClauses>1024</maxBooleanClauses>\n\n\n    <!-- Solr Internal Query 
Caches\n\n         There are two implementations of cache available for Solr,\n 
        LRUCache, based on a synchronized LinkedHashMap, and\n         
FastLRUCache, based on a ConcurrentHashMap.\n\n         FastLRUCache has faster 
gets and slower puts in single\n         threaded operation and thus is 
generally faster than LRUCache\n         when the hit ratio of the cache is 
high (> 75%), and may be\n 
         faster under other scenarios on multi-cpu systems.\n    -->\n\n    
<!-- Filter Cache\n\n         Cache used by SolrIndexSearcher for filters 
(DocSets),\n         unordered sets of *all* documents that match a query.  
When a\n         new searcher is opened, its caches may be prepopulated or\n    
     \"autowarmed\" using data from caches in the old searcher.\n         
autowarmCount is the number of items to prepopulate.  For\n         LRUCache, 
the autowarmed items will be the most recently\n         accessed items.\n\n    
     Parameters:\n           class - the SolrCache implementation LRUCache or\n 
              (LRUCache or FastLRUCache)\n           size - the maximum number 
of entries in the cache\n           initialSize - the initial capacity (number 
of entries) of\n               the cache.  (see java.util.HashMap)\n           
autowarmCount - the number of entries to prepopulate from\n               and 
old cache.\n      -->\n    <filterCache class=\"solr.FastLRUCache
 \"\n                 size=\"512\"\n                 initialSize=\"512\"\n      
           autowarmCount=\"0\"/>\n\n    <!-- Query Result Cache\n\n         
Caches results of searches - ordered lists of document ids\n         (DocList) 
based on a query, a sort, and the range of documents requested.\n      -->\n    
<queryResultCache class=\"solr.LRUCache\"\n                     size=\"512\"\n  
                   initialSize=\"512\"\n                     
autowarmCount=\"0\"/>\n\n    <!-- Document Cache\n\n         Caches Lucene 
Document objects (the stored fields for each\n         document).  Since Lucene 
internal document ids are transient,\n         this cache will not be 
autowarmed.\n      -->\n    <documentCache class=\"solr.LRUCache\"\n            
       size=\"512\"\n                   initialSize=\"512\"\n                   
autowarmCount=\"0\"/>\n\n    <!-- custom cache currently used by block join 
-->\n    <cache name=\"perSegFilter\"\n      class=\"solr.search.LRUCache\"\n   
 
   size=\"10\"\n      initialSize=\"0\"\n      autowarmCount=\"10\"\n      
regenerator=\"solr.NoOpRegenerator\" />\n\n    <!-- Field Value Cache\n\n       
  Cache used to hold field values that are quickly accessible\n         by 
document id.  The fieldValueCache is created by default\n         even if not 
configured here.\n      -->\n    <!--\n       <fieldValueCache 
class=\"solr.FastLRUCache\"\n                        size=\"512\"\n             
           autowarmCount=\"128\"\n                        showItems=\"32\" />\n 
     -->\n\n    <!-- Custom Cache\n\n         Example of a generic cache.  
These caches may be accessed by\n         name through 
SolrIndexSearcher.getCache(),cacheLookup(), and\n         cacheInsert().  The 
purpose is to enable easy caching of\n         user/application level data.  
The regenerator argument should\n         be specified as an implementation of 
solr.CacheRegenerator\n         if autowarming is desired.\n      -->\n    
<!--\n       <cache name=\"m
 yUserCache\"\n              class=\"solr.LRUCache\"\n              
size=\"4096\"\n              initialSize=\"1024\"\n              
autowarmCount=\"1024\"\n              
regenerator=\"com.mycompany.MyRegenerator\"\n              />\n      -->\n\n\n  
  <!-- Lazy Field Loading\n\n         If true, stored fields that are not 
requested will be loaded\n         lazily.  This can result in a significant 
speed improvement\n         if the usual case is to not load all stored 
fields,\n         especially if the skipped fields are large compressed text\n  
       fields.\n    -->\n    
<enableLazyFieldLoading>true</enableLazyFieldLoading>\n\n   <!-- Use Filter For 
Sorted Query\n\n        A possible optimization that attempts to use a filter 
to\n        satisfy a search.  If the requested sort does not include\n        
score, then the filterCache will be checked for a filter\n        matching the 
query. If found, the filter will be used as the\n        source of document 
ids, and then the sort 
 will be applied to\n        that.\n\n        For most situations, this will 
not be useful unless you\n        frequently get the same search repeatedly 
with different sort\n        options, and none of them ever use \"score\"\n     
-->\n   <!--\n      <useFilterForSortedQuery>true</useFilterForSortedQuery>\n   
  -->\n\n   <!-- Result Window Size\n\n        An optimization for use with the 
queryResultCache.  When a search\n        is requested, a superset of the 
requested number of document ids\n        are collected.  For example, if a 
search for a particular query\n        requests matching documents 10 through 
19, and queryWindowSize is 50,\n        then documents 0 through 49 will be 
collected and cached.  Any further\n        requests in that range can be 
satisfied via the cache.\n     -->\n   
<queryResultWindowSize>20</queryResultWindowSize>\n\n   <!-- Maximum number of 
documents to cache for any entry in the\n        queryResultCache.\n     -->\n  
 <queryResultMaxDocsCached>20
 0</queryResultMaxDocsCached>\n\n   <!-- Query Related Event Listeners\n\n      
  Various IndexSearcher related events can trigger Listeners to\n        take 
actions.\n\n        newSearcher - fired whenever a new searcher is being 
prepared\n        and there is a current searcher handling requests (aka\n      
  registered).  It can be used to prime certain caches to\n        prevent long 
request times for certain requests.\n\n        firstSearcher - fired whenever a 
new searcher is being\n        prepared but there is no current registered 
searcher to handle\n        requests or to gain autowarming data from.\n\n\n    
 -->\n    <!-- QuerySenderListener takes an array of NamedList and executes a\n 
        local query request for each NamedList in sequence.\n      -->\n    
<listener event=\"newSearcher\" class=\"solr.QuerySenderListener\">\n      <arr 
name=\"queries\">\n        <!--\n           <lst><str name=\"q\">solr</str><str 
name=\"sort\">price asc</str></lst>\n           <lst><st
 r name=\"q\">rocks</str><str name=\"sort\">weight asc</str></lst>\n          
-->\n      </arr>\n    </listener>\n    <listener event=\"firstSearcher\" 
class=\"solr.QuerySenderListener\">\n      <arr name=\"queries\">\n        
<lst>\n          <str name=\"q\">static firstSearcher warming in 
solrconfig.xml</str>\n        </lst>\n      </arr>\n    </listener>\n\n    <!-- 
Use Cold Searcher\n\n         If a search request comes in and there is no 
current\n         registered searcher, then immediately register the still\n    
     warming searcher and use it.  If \"false\" then all requests\n         
will block until the first searcher is done warming.\n      -->\n    
<useColdSearcher>true</useColdSearcher>\n\n    <!-- Max Warming Searchers\n\n   
      Maximum number of searchers that may be warming in the\n         
background concurrently.  An error is returned if this limit\n         is 
exceeded.\n\n         Recommend values of 1-2 for read-only slaves, higher 
for\n         masters w/o 
 cache warming.\n      -->\n    
<maxWarmingSearchers>2</maxWarmingSearchers>\n\n  </query>\n\n\n  <!-- Request 
Dispatcher\n\n       This section contains instructions for how the 
SolrDispatchFilter\n       should behave when processing requests for this 
SolrCore.\n\n       handleSelect is a legacy option that affects the behavior 
of requests\n       such as /select?qt=XXX\n\n       handleSelect=\"true\" will 
cause the SolrDispatchFilter to process\n       the request and dispatch the 
query to a handler specified by the\n       \"qt\" param, assuming \"/select\" 
isn't already registered.\n\n       handleSelect=\"false\" will cause the 
SolrDispatchFilter to\n       ignore \"/select\" requests, resulting in a 404 
unless a handler\n       is explicitly registered with the name \"/select\"\n\n 
      handleSelect=\"true\" is not recommended for new users, but is the 
default\n       for backwards compatibility\n    -->\n  <requestDispatcher 
handleSelect=\"false\" >\n    <!-- Request Parsing
 \n\n         These settings indicate how Solr Requests may be parsed, and\n    
     what restrictions may be placed on the ContentStreams from\n         those 
requests\n\n         enableRemoteStreaming - enables use of the stream.file\n   
      and stream.url parameters for specifying remote streams.\n\n         
multipartUploadLimitInKB - specifies the max size (in KiB) of\n         
Multipart File Uploads that Solr will allow in a Request.\n\n         
formdataUploadLimitInKB - specifies the max size (in KiB) of\n         form 
data (application/x-www-form-urlencoded) sent via\n         POST. You can use 
POST to pass request parameters not\n         fitting into the URL.\n\n         
addHttpRequestToContext - if set to true, it will instruct\n         the 
requestParsers to include the original HttpServletRequest\n         object in 
the context map of the SolrQueryRequest under the\n         key 
\"httpRequest\". It will not be used by any of the existing\n         Solr 
components, but m
 ay be useful when developing custom\n         plugins.\n\n         *** WARNING 
***\n         The settings below authorize Solr to fetch remote files, You\n    
     should make sure your system has some authentication before\n         
using enableRemoteStreaming=\"true\"\n\n      -->\n    <requestParsers 
enableRemoteStreaming=\"true\"\n                    
multipartUploadLimitInKB=\"2048000\"\n                    
formdataUploadLimitInKB=\"2048\"\n                    
addHttpRequestToContext=\"false\"/>\n\n    <!-- HTTP Caching\n\n         Set 
HTTP caching related parameters (for proxy caches and clients).\n\n         The 
options below instruct Solr not to output any HTTP Caching\n         related 
headers\n      -->\n    <httpCaching never304=\"true\" />\n    <!-- If you 
include a <cacheControl> directive, it will be used to\n         generate a 
Cache-Control header (as well as an Expires header\n         if the value 
contains \"max-age=\")\n\n         By default, no Cache-Control heade
 r is generated.\n\n         You can use the <cacheControl> option even if you 
have set\n         never304=\"true\"\n      -->\n    <!--\n       <httpCaching 
never304=\"true\" >\n         <cacheControl>max-age=30, public</cacheControl>\n 
      </httpCaching>\n      -->\n    <!-- To enable Solr to respond with 
automatically generated HTTP\n         Caching headers, and to response to 
Cache Validation requests\n         correctly, set the value of 
never304=\"false\"\n\n         This will cause Solr to generate Last-Modified 
and ETag\n         headers based on the properties of the Index.\n\n         
The following options can also be specified to affect the\n         values of 
these headers...\n\n         lastModFrom - the default value is \"openTime\" 
which means the\n         Last-Modified value (and validation against 
If-Modified-Since\n         requests) will all be relative to when the current 
Searcher\n         was opened.  You can change it to lastModFrom=\"dirLastMod\" 
if\n     
     you want the value to exactly correspond to when the physical\n         
index was last modified.\n\n         etagSeed=\"...\" is an option you can 
change to force the ETag\n         header (and validation against If-None-Match 
requests) to be\n         different even if the index has not changed (ie: when 
making\n         significant changes to your config file)\n\n         
(lastModifiedFrom and etagSeed are both ignored if you use\n         the 
never304=\"true\" option)\n      -->\n    <!--\n       <httpCaching 
lastModifiedFrom=\"openTime\"\n                    etagSeed=\"Solr\">\n         
<cacheControl>max-age=30, public</cacheControl>\n       </httpCaching>\n      
-->\n  </requestDispatcher>\n\n  <!-- Request Handlers\n\n       
http://wiki.apache.org/solr/SolrRequestHandler\n\n       Incoming queries will 
be dispatched to a specific handler by name\n       based on the path specified 
in the request.\n\n       Legacy behavior: If the request path uses \"/select\" 
but no Reques
 t\n       Handler has that name, and if handleSelect=\"true\" has been 
specified in\n       the requestDispatcher, then the Request Handler is 
dispatched based on\n       the qt parameter.  Handlers without a leading '/' 
are accessed this way\n       like so: http://host/app/[core/]select?qt=name  
If no qt is\n       given, then the requestHandler that declares 
default=\"true\" will be\n       used or the one named \"standard\".\n\n       
If a Request Handler is declared with startup=\"lazy\", then it will\n       
not be initialized until the first request that uses it.\n\n    -->\n\n  
<requestHandler name=\"/dataimport\" class=\"solr.DataImportHandler\">\n    
<lst name=\"defaults\">\n      <str 
name=\"config\">solr-data-config.xml</str>\n    </lst>\n  </requestHandler>\n\n 
 <!-- SearchHandler\n\n       http://wiki.apache.org/solr/SearchHandler\n\n     
  For processing Search Queries, the primary Request Handler\n       provided 
with Solr is \"SearchHandler\" It delegates to a seque
 nt\n       of SearchComponents (see below) and supports distributed\n       
queries across multiple shards\n    -->\n  <requestHandler name=\"/select\" 
class=\"solr.SearchHandler\">\n    <!-- default values for query parameters can 
be specified, these\n         will be overridden by parameters in the request\n 
     -->\n     <lst name=\"defaults\">\n       <str 
name=\"echoParams\">explicit</str>\n       <int name=\"rows\">10</int>\n       
<str name=\"df\">text</str>\n     </lst>\n    <!-- In addition to defaults, 
\"appends\" params can be specified\n         to identify values which should 
be appended to the list of\n         multi-val params from the query (or the 
existing \"defaults\").\n      -->\n    <!-- In this example, the param 
\"fq=instock:true\" would be appended to\n         any query time fq params the 
user may specify, as a mechanism for\n         partitioning the index, 
independent of any user selected filtering\n         that may also be desired 
(perhaps as a result o
 f faceted searching).\n\n         NOTE: there is *absolutely* nothing a client 
can do to prevent these\n         \"appends\" values from being used, so don't 
use this mechanism\n         unless you are sure you always want it.\n      
-->\n    <!--\n       <lst name=\"appends\">\n         <str 
name=\"fq\">inStock:true</str>\n       </lst>\n      -->\n    <!-- 
\"invariants\" are a way of letting the Solr maintainer lock down\n         the 
options available to Solr clients.  Any params values\n         specified here 
are used regardless of what values may be specified\n         in either the 
query, the \"defaults\", or the \"appends\" params.\n\n         In this 
example, the facet.field and facet.query params would\n         be fixed, 
limiting the facets clients can use.  Faceting is\n         not turned on by 
default - but if the client does specify\n         facet=true in the request, 
these are the only facets they\n         will be able to see counts for; 
regardless of what other\n 
         facet.field or facet.query params they may specify.\n\n         NOTE: 
there is *absolutely* nothing a client can do to prevent these\n         
\"invariants\" values from being used, so don't use this mechanism\n         
unless you are sure you always want it.\n      -->\n    <!--\n       <lst 
name=\"invariants\">\n         <str name=\"facet.field\">cat</str>\n         
<str name=\"facet.field\">manu_exact</str>\n         <str 
name=\"facet.query\">price:[* TO 500]</str>\n         <str 
name=\"facet.query\">price:[500 TO *]</str>\n       </lst>\n      -->\n    <!-- 
If the default list of SearchComponents is not desired, that\n         list can 
either be overridden completely, or components can be\n         prepended or 
appended to the default list.  (see below)\n      -->\n    <!--\n       <arr 
name=\"components\">\n         <str>nameOfCustomComponent1</str>\n         
<str>nameOfCustomComponent2</str>\n       </arr>\n      -->\n    
</requestHandler>\n\n  <!-- A request handler t
 hat returns indented JSON by default -->\n  <requestHandler name=\"/query\" 
class=\"solr.SearchHandler\">\n     <lst name=\"defaults\">\n       <str 
name=\"echoParams\">explicit</str>\n       <str name=\"wt\">json</str>\n       
<str name=\"indent\">true</str>\n       <str name=\"df\">text</str>\n     
</lst>\n  </requestHandler>\n\n\n  <!-- realtime get handler, guaranteed to 
return the latest stored fields of\n       any document, without the need to 
commit or open a new searcher.  The\n       current implementation relies on 
the updateLog feature being enabled.\n\n       ** WARNING **\n       Do NOT 
disable the realtime get handler at /get if you are using\n       SolrCloud 
otherwise any leader election will cause a full sync in ALL\n       replicas 
for the shard in question. Similarly, a replica recovery will\n       also 
always fetch the complete index from the leader because a partial\n       sync 
will not be possible in the absence of this handler.\n  -->\n  <requestHandler 
nam
 e=\"/get\" class=\"solr.RealTimeGetHandler\">\n     <lst name=\"defaults\">\n  
     <str name=\"omitHeader\">true</str>\n       <str name=\"wt\">json</str>\n  
     <str name=\"indent\">true</str>\n     </lst>\n  </requestHandler>\n\n\n  
<!-- A Robust Example\n\n       This example SearchHandler declaration shows 
off usage of the\n       SearchHandler with many defaults declared\n\n       
Note that multiple instances of the same Request Handler\n       
(SearchHandler) can be registered multiple times with different\n       names 
(and different init parameters)\n    -->\n  <requestHandler name=\"/browse\" 
class=\"solr.SearchHandler\">\n    <lst name=\"defaults\">\n      <str 
name=\"echoParams\">explicit</str>\n\n      <!-- VelocityResponseWriter 
settings -->\n      <str name=\"wt\">velocity</str>\n      <str 
name=\"v.template\">browse</str>\n      <str name=\"v.layout\">layout</str>\n\n 
     <!-- Query settings -->\n      <str name=\"defType\">edismax</str>\n      
<str name=\"q.alt\">
 *:*</str>\n      <str name=\"rows\">10</str>\n      <str 
name=\"fl\">*,score</str>\n\n      <!-- Faceting defaults -->\n      <str 
name=\"facet\">on</str>\n      <str name=\"facet.mincount\">1</str>\n    
</lst>\n  </requestHandler>\n\n\n  <initParams 
path=\"/update/**,/query,/select,/tvrh,/elevate,/spell,/browse\">\n    <lst 
name=\"defaults\">\n      <str name=\"df\">text</str>\n      <str 
name=\"update.chain\">add-unknown-fields-to-the-schema</str>\n    </lst>\n  
</initParams>\n\n  <!-- Update Request Handler.\n\n       
http://wiki.apache.org/solr/UpdateXmlMessages\n\n       The canonical Request 
Handler for Modifying the Index through\n       commands specified using XML, 
JSON, CSV, or JAVABIN\n\n       Note: Since solr1.1 requestHandlers requires a 
valid content\n       type header if posted in the body. For example, curl 
now\n       requires: -H 'Content-type:text/xml; charset=utf-8'\n\n       To 
override the request content type and force a specific\n       Content-type, 
use th
 e request parameter:\n         ?update.contentType=text/csv\n\n       This 
handler will pick a response format to match the input\n       if the 'wt' 
parameter is not explicit\n    -->\n  <requestHandler name=\"/update\" 
class=\"solr.UpdateRequestHandler\">\n    <!-- See below for information on 
defining\n         updateRequestProcessorChains that can be used by name\n      
   on each Update Request\n      -->\n    <!--\n       <lst 
name=\"defaults\">\n         <str name=\"update.chain\">dedupe</str>\n       
</lst>\n       -->\n  </requestHandler>\n\n  <!-- Solr Cell Update Request 
Handler\n\n       http://wiki.apache.org/solr/ExtractingRequestHandler\n\n    
-->\n  <requestHandler name=\"/update/extract\"\n                  
startup=\"lazy\"\n                  
class=\"solr.extraction.ExtractingRequestHandler\" >\n    <lst 
name=\"defaults\">\n      <str name=\"lowernames\">true</str>\n      <str 
name=\"uprefix\">ignored_</str>\n\n      <!-- capture link hrefs but ignore div 
attributes
  -->\n      <str name=\"captureAttr\">true</str>\n      <str 
name=\"fmap.a\">links</str>\n      <str name=\"fmap.div\">ignored_</str>\n    
</lst>\n  </requestHandler>\n\n\n  <!-- Field Analysis Request Handler\n\n      
 RequestHandler that provides much the same functionality as\n       
analysis.jsp. Provides the ability to specify multiple field\n       types and 
field names in the same request and outputs\n       index-time and query-time 
analysis for each of them.\n\n       Request parameters are:\n       
analysis.fieldname - field name whose analyzers are to be used\n\n       
analysis.fieldtype - field type whose analyzers are to be used\n       
analysis.fieldvalue - text for index-time analysis\n       q (or analysis.q) - 
text for query time analysis\n       analysis.showmatch (true|false) - When set 
to true and when\n           query analysis is performed, the produced tokens 
of the\n           field value analysis will be marked as \"matched\" for 
every\n           token that
  is produces by the query analysis\n   -->\n  <requestHandler 
name=\"/analysis/field\"\n                  startup=\"lazy\"\n                  
class=\"solr.FieldAnalysisRequestHandler\" />\n\n\n  <!-- Document Analysis 
Handler\n\n       http://wiki.apache.org/solr/AnalysisRequestHandler\n\n       
An analysis handler that provides a breakdown of the analysis\n       process 
of provided documents. This handler expects a (single)\n       content stream 
with the following format:\n\n       <docs>\n         <doc>\n           <field 
name=\"id\">1</field>\n           <field name=\"name\">The Name</field>\n       
    <field name=\"text\">The Text Value</field>\n         </doc>\n         
<doc>...</doc>\n         <doc>...</doc>\n         ...\n       </docs>\n\n    
Note: Each document must contain a field which serves as the\n    unique key. 
This key is used in the returned response to associate\n    an analysis 
breakdown to the analyzed document.\n\n    Like the 
FieldAnalysisRequestHandler, th
 is handler also supports\n    query analysis by sending either an 
\"analysis.query\" or \"q\"\n    request parameter that holds the query text to 
be analyzed. It\n    also supports the \"analysis.showmatch\" parameter which 
when set to\n    true, all field tokens that match the query tokens will be 
marked\n    as a \"match\".\n  -->\n  <requestHandler 
name=\"/analysis/document\"\n                  
class=\"solr.DocumentAnalysisRequestHandler\"\n                  
startup=\"lazy\" />\n\n  <!-- Admin Handlers\n\n       Admin Handlers - This 
will register all the standard admin\n       RequestHandlers.\n    -->\n  
<requestHandler name=\"/admin/\"\n                  
class=\"solr.admin.AdminHandlers\" />\n  <!-- This single handler is equivalent 
to the following... -->\n  <!--\n     <requestHandler name=\"/admin/luke\"      
 class=\"solr.admin.LukeRequestHandler\" />\n     <requestHandler 
name=\"/admin/system\"     class=\"solr.admin.SystemInfoHandler\" />\n     
<requestHandler name=\"/adm
 in/plugins\"    class=\"solr.admin.PluginInfoHandler\" />\n     
<requestHandler name=\"/admin/threads\"    
class=\"solr.admin.ThreadDumpHandler\" />\n     <requestHandler 
name=\"/admin/properties\" class=\"solr.admin.PropertiesRequestHandler\" />\n   
  <requestHandler name=\"/admin/file\"       
class=\"solr.admin.ShowFileRequestHandler\" >\n    -->\n  <!-- If you wish to 
hide files under ${solr.home}/conf, explicitly\n       register the 
ShowFileRequestHandler using the definition below.\n       NOTE: The glob 
pattern ('*') is the only pattern supported at present, *.xml will\n            
 not exclude all files ending in '.xml'. Use it to exclude _all_ updates\n    
-->\n  <!--\n     <requestHandler name=\"/admin/file\"\n                     
class=\"solr.admin.ShowFileRequestHandler\" >\n       <lst 
name=\"invariants\">\n         <str name=\"hidden\">synonyms.txt</str>\n        
 <str name=\"hidden\">anotherfile.txt</str>\n         <str 
name=\"hidden\">*</str>\n       </lst>\n     </r
 equestHandler>\n    -->\n\n  <!--\n    Enabling this request handler (which is 
NOT a default part of the admin handler) will allow the Solr UI to edit\n    
all the config files. This is intended for secure/development use ONLY! Leaving 
available and publically\n    accessible is a security vulnerability and should 
be done with extreme caution!\n  -->\n  <!--\n  <requestHandler 
name=\"/admin/fileedit\" class=\"solr.admin.EditFileRequestHandler\" >\n    
<lst name=\"invariants\">\n         <str name=\"hidden\">synonyms.txt</str>\n   
      <str name=\"hidden\">anotherfile.txt</str>\n    </lst>\n  
</requestHandler>\n  -->\n  <!-- ping/healthcheck -->\n  <requestHandler 
name=\"/admin/ping\" class=\"solr.PingRequestHandler\">\n    <lst 
name=\"invariants\">\n      <str name=\"q\">solrpingquery</str>\n    </lst>\n   
 <lst name=\"defaults\">\n      <str name=\"echoParams\">all</str>\n    
</lst>\n    <!-- An optional feature of the PingRequestHandler is to configure 
the\n         handler with 
 a \"healthcheckFile\" which can be used to enable/disable\n         the 
PingRequestHandler.\n         relative paths are resolved against the data 
dir\n      -->\n    <!-- <str name=\"healthcheckFile\">server-enabled.txt</str> 
-->\n  </requestHandler>\n\n  <!-- Echo the request contents back to the client 
-->\n  <requestHandler name=\"/debug/dump\" class=\"solr.DumpRequestHandler\" 
>\n    <lst name=\"defaults\">\n     <str name=\"echoParams\">explicit</str>\n  
   <str name=\"echoHandler\">true</str>\n    </lst>\n  </requestHandler>\n\n  
<!-- Solr Replication\n\n       The SolrReplicationHandler supports replicating 
indexes from a\n       \"master\" used for indexing and \"slaves\" used for 
queries.\n\n       http://wiki.apache.org/solr/SolrReplication\n\n       It is 
also necessary for SolrCloud to function (in Cloud mode, the\n       
replication handler is used to bulk transfer segments when nodes\n       are 
added or need to recover).\n\n       https://wiki.apache.org/solr/SolrClo
 ud/\n    -->\n  <requestHandler name=\"/replication\" 
class=\"solr.ReplicationHandler\" >\n    <!--\n       To enable simple 
master/slave replication, uncomment one of the\n       sections below, 
depending on whether this solr instance should be\n       the \"master\" or a 
\"slave\".  If this instance is a \"slave\" you will\n       also need to fill 
in the masterUrl to point to a real machine.\n    -->\n    <!--\n       <lst 
name=\"master\">\n         <str name=\"replicateAfter\">commit</str>\n         
<str name=\"replicateAfter\">startup</str>\n         <str 
name=\"confFiles\">schema.xml,stopwords.txt</str>\n       </lst>\n    -->\n    
<!--\n       <lst name=\"slave\">\n         <str 
name=\"masterUrl\">http://your-master-hostname:8983/solr</str>\n         <str 
name=\"pollInterval\">00:00:60</str>\n       </lst>\n    -->\n  
</requestHandler>\n\n  <!-- Search Components\n\n       Search components are 
registered to SolrCore and used by\n       instances of SearchHandler (which 
can a
 ccess them by name)\n\n       By default, the following components are 
available:\n\n       <searchComponent name=\"query\"     
class=\"solr.QueryComponent\" />\n       <searchComponent name=\"facet\"     
class=\"solr.FacetComponent\" />\n       <searchComponent name=\"mlt\"       
class=\"solr.MoreLikeThisComponent\" />\n       <searchComponent 
name=\"highlight\" class=\"solr.HighlightComponent\" />\n       
<searchComponent name=\"stats\"     class=\"solr.StatsComponent\" />\n       
<searchComponent name=\"debug\"     class=\"solr.DebugComponent\" />\n\n       
Default configuration in a requestHandler would look like:\n\n       <arr 
name=\"components\">\n         <str>query</str>\n         <str>facet</str>\n    
     <str>mlt</str>\n         <str>highlight</str>\n         <str>stats</str>\n 
        <str>debug</str>\n       </arr>\n\n       If you register a 
searchComponent to one of the standard names,\n       that will be used instead 
of the default.\n\n       To insert components b
 efore or after the 'standard' components, use:\n\n       <arr 
name=\"first-components\">\n         <str>myFirstComponentName</str>\n       
</arr>\n\n       <arr name=\"last-components\">\n         
<str>myLastComponentName</str>\n       </arr>\n\n       NOTE: The component 
registered with the name \"debug\" will\n       always be executed after the 
\"last-components\"\n\n     -->\n\n   <!-- Spell Check\n\n        The spell 
check component can return a list of alternative spelling\n        
suggestions.\n\n        http://wiki.apache.org/solr/SpellCheckComponent\n     
-->\n  <searchComponent name=\"spellcheck\" 
class=\"solr.SpellCheckComponent\">\n\n    <str 
name=\"queryAnalyzerFieldType\">text_general</str>\n\n    <!-- Multiple \"Spell 
Checkers\" can be declared and used by this\n         component\n      -->\n\n  
  <!-- a spellchecker built from a field of the main index -->\n    <lst 
name=\"spellchecker\">\n      <str name=\"name\">default</str>\n      <str 
name=\"field\">text</str>\
 n      <str name=\"classname\">solr.DirectSolrSpellChecker</str>\n      <!-- 
the spellcheck distance measure used, the default is the internal levenshtein 
-->\n      <str name=\"distanceMeasure\">internal</str>\n      <!-- minimum 
accuracy needed to be considered a valid spellcheck suggestion -->\n      
<float name=\"accuracy\">0.5</float>\n      <!-- the maximum #edits we consider 
when enumerating terms: can be 1 or 2 -->\n      <int 
name=\"maxEdits\">2</int>\n      <!-- the minimum shared prefix when 
enumerating terms -->\n      <int name=\"minPrefix\">1</int>\n      <!-- 
maximum number of inspections per result. -->\n      <int 
name=\"maxInspections\">5</int>\n      <!-- minimum length of a query term to 
be considered for correction -->\n      <int name=\"minQueryLength\">4</int>\n  
    <!-- maximum threshold of documents a query term can appear to be 
considered for correction -->\n      <float 
name=\"maxQueryFrequency\">0.01</float>\n      <!-- uncomment this to require 
suggesti
 ons to occur in 1% of the documents\n      \t<float 
name=\"thresholdTokenFrequency\">.01</float>\n      -->\n    </lst>\n\n    <!-- 
a spellchecker that can break or combine words.  See \"/spell\" handler below 
for usage -->\n    <lst name=\"spellchecker\">\n      <str 
name=\"name\">wordbreak</str>\n      <str 
name=\"classname\">solr.WordBreakSolrSpellChecker</str>\n      <str 
name=\"field\">name</str>\n      <str name=\"combineWords\">true</str>\n      
<str name=\"breakWords\">true</str>\n      <int name=\"maxChanges\">10</int>\n  
  </lst>\n\n    <!-- a spellchecker that uses a different distance measure 
-->\n    <!--\n       <lst name=\"spellchecker\">\n         <str 
name=\"name\">jarowinkler</str>\n         <str name=\"field\">spell</str>\n     
    <str name=\"classname\">solr.DirectSolrSpellChecker</str>\n         <str 
name=\"distanceMeasure\">\n           
org.apache.lucene.search.spell.JaroWinklerDistance\n         </str>\n       
</lst>\n     -->\n\n    <!-- a spellchecker that 
 use an alternate comparator\n\n         comparatorClass be one of:\n          
1. score (default)\n          2. freq (Frequency first, then score)\n          
3. A fully qualified class name\n      -->\n    <!--\n       <lst 
name=\"spellchecker\">\n         <str name=\"name\">freq</str>\n         <str 
name=\"field\">lowerfilt</str>\n         <str 
name=\"classname\">solr.DirectSolrSpellChecker</str>\n         <str 
name=\"comparatorClass\">freq</str>\n      -->\n\n    <!-- A spellchecker that 
reads the list of words from a file -->\n    <!--\n       <lst 
name=\"spellchecker\">\n         <str 
name=\"classname\">solr.FileBasedSpellChecker</str>\n         <str 
name=\"name\">file</str>\n         <str 
name=\"sourceLocation\">spellings.txt</str>\n         <str 
name=\"characterEncoding\">UTF-8</str>\n         <str 
name=\"spellcheckIndexDir\">spellcheckerFile</str>\n       </lst>\n      -->\n  
</searchComponent>\n\n  <!-- A request handler for demonstrating the spellcheck 
component.\n\n       N
 OTE: This is purely as an example.  The whole purpose of the\n       
SpellCheckComponent is to hook it into the request handler that\n       handles 
your normal user queries so that a separate request is\n       not needed to 
get suggestions.\n\n       IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE 
SETUP BELOW IS\n       NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!\n\n       
See http://wiki.apache.org/solr/SpellCheckComponent for details\n       on the 
request parameters.\n    -->\n  <requestHandler name=\"/spell\" 
class=\"solr.SearchHandler\" startup=\"lazy\">\n    <lst name=\"defaults\">\n   
   <str name=\"df\">text</str>\n      <!-- Solr will use suggestions from both 
the 'default' spellchecker\n           and from the 'wordbreak' spellchecker 
and combine them.\n           collations (re-written queries) can include a 
combination of\n           corrections from both spellcheckers -->\n      <str 
name=\"spellcheck.dictionary\">default</str>\n      <str 
name=\"spellcheck.dictiona
 ry\">wordbreak</str>\n      <str name=\"spellcheck\">on</str>\n      <str 
name=\"spellcheck.extendedResults\">true</str>\n      <str 
name=\"spellcheck.count\">10</str>\n      <str 
name=\"spellcheck.alternativeTermCount\">5</str>\n      <str 
name=\"spellcheck.maxResultsForSuggest\">5</str>\n      <str 
name=\"spellcheck.collate\">true</str>\n      <str 
name=\"spellcheck.collateExtendedResults\">true</str>\n      <str 
name=\"spellcheck.maxCollationTries\">10</str>\n      <str 
name=\"spellcheck.maxCollations\">5</str>\n    </lst>\n    <arr 
name=\"last-components\">\n      <str>spellcheck</str>\n    </arr>\n  
</requestHandler>\n\n  <searchComponent name=\"suggest\" 
class=\"solr.SuggestComponent\">\n  \t<lst name=\"suggester\">\n      <str 
name=\"name\">mySuggester</str>\n      <str 
name=\"lookupImpl\">FuzzyLookupFactory</str>      <!-- 
org.apache.solr.spelling.suggest.fst -->\n      <str 
name=\"dictionaryImpl\">DocumentDictionaryFactory</str>     <!-- 
org.apache.solr.spelling.suggest.Hig
 hFrequencyDictionaryFactory -->\n      <str name=\"field\">cat</str>\n      
<str name=\"weightField\">price</str>\n      <str 
name=\"suggestAnalyzerFieldType\">string</str>\n    </lst>\n  
</searchComponent>\n\n  <requestHandler name=\"/suggest\" 
class=\"solr.SearchHandler\" startup=\"lazy\">\n    <lst name=\"defaults\">\n   
   <str name=\"suggest\">true</str>\n      <str 
name=\"suggest.count\">10</str>\n    </lst>\n    <arr name=\"components\">\n    
  <str>suggest</str>\n    </arr>\n  </requestHandler>\n  <!-- Term Vector 
Component\n\n       http://wiki.apache.org/solr/TermVectorComponent\n    -->\n  
<searchComponent name=\"tvComponent\" class=\"solr.TermVectorComponent\"/>\n\n  
<!-- A request handler for demonstrating the term vector component\n\n       
This is purely as an example.\n\n       In reality you will likely want to add 
the component to your\n       already specified request handlers.\n    -->\n  
<requestHandler name=\"/tvrh\" class=\"solr.SearchHandler\" startup=\"lazy\
 ">\n    <lst name=\"defaults\">\n      <str name=\"df\">text</str>\n      
<bool name=\"tv\">true</bool>\n    </lst>\n    <arr name=\"last-components\">\n 
     <str>tvComponent</str>\n    </arr>\n  </requestHandler>\n\n  <!-- 
Clustering Component\n\n       You'll need to set the solr.clustering.enabled 
system property\n       when running solr to run with clustering enabled:\n\n   
         java -Dsolr.clustering.enabled=true -jar start.jar\n\n       
http://wiki.apache.org/solr/ClusteringComponent\n       
http://carrot2.github.io/solr-integration-strategies/\n    -->\n  
<searchComponent name=\"clustering\"\n                   
enable=\"${solr.clustering.enabled:false}\"\n                   
class=\"solr.clustering.ClusteringComponent\" >\n    <lst name=\"engine\">\n    
  <str name=\"name\">lingo</str>\n\n      <!-- Class name of a clustering 
algorithm compatible with the Carrot2 framework.\n\n           Currently 
available open source algorithms are:\n           * org.carrot2.clustering
 .lingo.LingoClusteringAlgorithm\n           * 
org.carrot2.clustering.stc.STCClusteringAlgorithm\n           * 
org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm\n\n           
See http://project.carrot2.org/algorithms.html for more information.\n\n        
   A commercial algorithm Lingo3G (needs to be installed separately) is defined 
as:\n           * com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm\n        
-->\n      <str 
name=\"carrot.algorithm\">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>\n\n
      <!-- Override location of the clustering algorithm's resources\n          
 (attribute definitions and lexical resources).\n\n           A directory from 
which to load algorithm-specific stop words,\n           stop labels and 
attribute definition XMLs.\n\n           For an overview of Carrot2 lexical 
resources, see:\n           
http://download.carrot2.org/head/manual/#chapter.lexical-resources\n\n          
 For an overview of Lingo3G lexical resources, s
 ee:\n           
http://download.carrotsearch.com/lingo3g/manual/#chapter.lexical-resources\n    
   -->\n      <str name=\"carrot.resourcesDir\">clustering/carrot2</str>\n    
</lst>\n\n    <!-- An example definition for the STC clustering algorithm. 
-->\n    <lst name=\"engine\">\n      <str name=\"name\">stc</str>\n      <str 
name=\"carrot.algorithm\">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>\n
    </lst>\n\n    <!-- An example definition for the bisecting kmeans 
clustering algorithm. -->\n    <lst name=\"engine\">\n      <str 
name=\"name\">kmeans</str>\n      <str 
name=\"carrot.algorithm\">org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm</str>\n
    </lst>\n  </searchComponent>\n\n  <!-- A request handler for demonstrating 
the clustering component\n\n       This is purely as an example.\n\n       In 
reality you will likely want to add the component to your\n       already 
specified request handlers.\n    -->\n  <requestHandler name=\"/clustering\"\n  
   
              startup=\"lazy\"\n                  
enable=\"${solr.clustering.enabled:false}\"\n                  
class=\"solr.SearchHandler\">\n    <lst name=\"defaults\">\n      <bool 
name=\"clustering\">true</bool>\n      <bool 
name=\"clustering.results\">true</bool>\n      <!-- Field name with the logical 
\"title\" of a each document (optional) -->\n      <str 
name=\"carrot.title\">name</str>\n      <!-- Field name with the logical 
\"URL\" of a each document (optional) -->\n      <str 
name=\"carrot.url\">id</str>\n      <!-- Field name with the logical 
\"content\" of a each document (optional) -->\n      <str 
name=\"carrot.snippet\">features</str>\n      <!-- Apply highlighter to the 
title/ content and use this for clustering. -->\n      <bool 
name=\"carrot.produceSummary\">true</bool>\n      <!-- the maximum number of 
labels per cluster -->\n      <!--<int 
name=\"carrot.numDescriptions\">5</int>-->\n      <!-- produce sub clusters 
-->\n      <bool name=\"carrot.outputSubClusters\
 ">false</bool>\n\n      <!-- Configure the remaining request handler 
parameters. -->\n      <str name=\"defType\">edismax</str>\n      <str 
name=\"qf\">\n        text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 
cat^1.4\n      </str>\n      <str name=\"q.alt\">*:*</str>\n      <str 
name=\"rows\">10</str>\n      <str name=\"fl\">*,score</str>\n    </lst>\n    
<arr name=\"last-components\">\n      <str>clustering</str>\n    </arr>\n  
</requestHandler>\n\n  <!-- Terms Component\n\n       
http://wiki.apache.org/solr/TermsComponent\n\n       A component to return 
terms and document frequency of those\n       terms\n    -->\n  
<searchComponent name=\"terms\" class=\"solr.TermsComponent\"/>\n\n  <!-- A 
request handler for demonstrating the terms component -->\n  <requestHandler 
name=\"/terms\" class=\"solr.SearchHandler\" startup=\"lazy\">\n     <lst 
name=\"defaults\">\n      <bool name=\"terms\">true</bool>\n      <bool 
name=\"distrib\">false</bool>\n    </lst>\n    <arr name=\"comp
 onents\">\n      <str>terms</str>\n    </arr>\n  </requestHandler>\n\n\n  <!-- 
Query Elevation Component\n\n       
http://wiki.apache.org/solr/QueryElevationComponent\n\n       a search 
component that enables you to configure the top\n       results for a given 
query regardless of the normal lucene\n       scoring.\n    -->\n  
<searchComponent name=\"elevator\" class=\"solr.QueryElevationComponent\" >\n   
 <!-- pick a fieldType to analyze queries -->\n    <str 
name=\"queryFieldType\">string</str>\n    <str 
name=\"config-file\">elevate.xml</str>\n  </searchComponent>\n\n  <!-- A 
request handler for demonstrating the elevator component -->\n  <requestHandler 
name=\"/elevate\" class=\"solr.SearchHandler\" startup=\"lazy\">\n    <lst 
name=\"defaults\">\n      <str name=\"echoParams\">explicit</str>\n      <str 
name=\"df\">text</str>\n    </lst>\n    <arr name=\"last-components\">\n      
<str>elevator</str>\n    </arr>\n  </requestHandler>\n\n  <!-- Highlighting 
Component\n\n       http:
 //wiki.apache.org/solr/HighlightingParameters\n    -->\n  <searchComponent 
class=\"solr.HighlightComponent\" name=\"highlight\">\n    <highlighting>\n     
 <!-- Configure the standard fragmenter -->\n      <!-- This could most likely 
be commented out in the \"default\" case -->\n      <fragmenter name=\"gap\"\n  
                default=\"true\"\n                  
class=\"solr.highlight.GapFragmenter\">\n        <lst name=\"defaults\">\n      
    <int name=\"hl.fragsize\">100</int>\n        </lst>\n      
</fragmenter>\n\n      <!-- A regular-expression-based fragmenter\n           
(for sentence extraction)\n        -->\n      <fragmenter name=\"regex\"\n      
            class=\"solr.highlight.RegexFragmenter\">\n        <lst 
name=\"defaults\">\n          <!-- slightly smaller fragsizes work better 
because of slop -->\n          <int name=\"hl.fragsize\">70</int>\n          
<!-- allow 50% slop on fragment sizes -->\n          <float 
name=\"hl.regex.slop\">0.5</float>\n          <!-- 
 a basic sentence pattern -->\n          <str name=\"hl.regex.pattern\">[-\\w 
,/\\n\\&quot;&apos;]{20,200}</str>\n        </lst>\n      </fragmenter>\n\n     
 <!-- Configure the standard formatter -->\n      <formatter name=\"html\"\n    
             default=\"true\"\n                 
class=\"solr.highlight.HtmlFormatter\">\n        <lst name=\"defaults\">\n      
    <str name=\"hl.simple.pre\"><![CDATA[<em>]]></str>\n          <str 
name=\"hl.simple.post\"><![CDATA[</em>]]></str>\n        </lst>\n      
</formatter>\n\n      <!-- Configure the standard encoder -->\n      <encoder 
name=\"html\"\n               class=\"solr.highlight.HtmlEncoder\" />\n\n      
<!-- Configure the standard fragListBuilder -->\n      <fragListBuilder 
name=\"simple\"\n                       
class=\"solr.highlight.SimpleFragListBuilder\"/>\n\n      <!-- Configure the 
single fragListBuilder -->\n      <fragListBuilder name=\"single\"\n            
           class=\"solr.highlight.SingleFragListBuilder\"/>\n\n 
      <!-- Configure the weighted fragListBuilder -->\n      <fragListBuilder 
name=\"weighted\"\n                       default=\"true\"\n                    
   class=\"solr.highlight.WeightedFragListBuilder\"/>\n\n      <!-- default tag 
FragmentsBuilder -->\n      <fragmentsBuilder name=\"default\"\n                
        default=\"true\"\n                        
class=\"solr.highlight.ScoreOrderFragmentsBuilder\">\n        <!--\n        
<lst name=\"defaults\">\n          <str 
name=\"hl.multiValuedSeparatorChar\">/</str>\n        </lst>\n        -->\n     
 </fragmentsBuilder>\n\n      <!-- multi-colored tag FragmentsBuilder -->\n     
 <fragmentsBuilder name=\"colored\"\n                        
class=\"solr.highlight.ScoreOrderFragmentsBuilder\">\n        <lst 
name=\"defaults\">\n          <str name=\"hl.tag.pre\"><![CDATA[\n              
 <b style=\"background:yellow\">,<b style=\"background:lawgreen\">,\n           
    <b style=\"background:aquamarine\">,<b style=\"background:mage
 nta\">,\n               <b style=\"background:palegreen\">,<b 
style=\"background:coral\">,\n               <b style=\"background:wheat\">,<b 
style=\"background:khaki\">,\n               <b style=\"background:lime\">,<b 
style=\"background:deepskyblue\">]]></str>\n          <str 
name=\"hl.tag.post\"><![CDATA[</b>]]></str>\n        </lst>\n      
</fragmentsBuilder>\n\n      <boundaryScanner name=\"default\"\n                
       default=\"true\"\n                       
class=\"solr.highlight.SimpleBoundaryScanner\">\n        <lst 
name=\"defaults\">\n          <str name=\"hl.bs.maxScan\">10</str>\n          
<str name=\"hl.bs.chars\">.,!? &#9;&#10;&#13;</str>\n        </lst>\n      
</boundaryScanner>\n\n      <boundaryScanner name=\"breakIterator\"\n           
            class=\"solr.highlight.BreakIteratorBoundaryScanner\">\n        
<lst name=\"defaults\">\n          <!-- type should be one of CHARACTER, 
WORD(default), LINE and SENTENCE -->\n          <str name=\"hl.bs.type\">WORD</s
 tr>\n          <!-- language and country are used when constructing Locale 
object.  -->\n          <!-- And the Locale object will be used when getting 
instance of BreakIterator -->\n          <str 
name=\"hl.bs.language\">en</str>\n          <str 
name=\"hl.bs.country\">US</str>\n        </lst>\n      </boundaryScanner>\n    
</highlighting>\n  </searchComponent>\n\n  <!-- Update Processors\n\n       
Chains of Update Processor Factories for dealing with Update\n       Requests 
can be declared, and then used by name in Update\n       Request Processors\n\n 
      http://wiki.apache.org/solr/UpdateRequestProcessor\n\n    -->\n\n  <!-- 
Add unknown fields to the schema\n\n       An example field type guessing 
update processor that will\n       attempt to parse string-typed field values 
as Booleans, Longs,\n       Doubles, or Dates, and then add schema fields with 
the guessed\n       field types.\n\n       This requires that the schema is 
both managed and mutable, by\n       declaring schem
 aFactory as ManagedIndexSchemaFactory, with\n       mutable specified as 
true.\n\n       See http://wiki.apache.org/solr/GuessingFieldTypes\n    -->\n  
<updateRequestProcessorChain name=\"add-unknown-fields-to-the-schema\">\n    
<processor class=\"solr.DefaultValueUpdateProcessorFactory\">\n        <str 
name=\"fieldName\">_ttl_</str>\n        <str 
name=\"value\">+{{ranger_audit_max_retention_days}}DAYS</str>\n    
</processor>\n    <processor 
class=\"solr.processor.DocExpirationUpdateProcessorFactory\">\n        <int 
name=\"autoDeletePeriodSeconds\">86400</int>\n        <str 
name=\"ttlFieldName\">_ttl_</str>\n        <str 
name=\"expirationFieldName\">_expire_at_</str>\n    </processor>\n    
<processor class=\"solr.FirstFieldValueUpdateProcessorFactory\">\n      <str 
name=\"fieldName\">_expire_at_</str>\n    </processor>\n\n    <processor 
class=\"solr.RemoveBlankFieldUpdateProcessorFactory\"/>\n    <processor 
class=\"solr.ParseBooleanFieldUpdateProcessorFactory\"/>\n    <processor cla
 ss=\"solr.ParseLongFieldUpdateProcessorFactory\"/>\n    <processor 
class=\"solr.ParseDoubleFieldUpdateProcessorFactory\"/>\n    <processor 
class=\"solr.ParseDateFieldUpdateProcessorFactory\">\n      <arr 
name=\"format\">\n        <str>yyyy-MM-dd'T'HH:mm:ss.SSSZ</str>\n        
<str>yyyy-MM-dd'T'HH:mm:ss,SSSZ</str>\n        
<str>yyyy-MM-dd'T'HH:mm:ss.SSS</str>\n        
<str>yyyy-MM-dd'T'HH:mm:ss,SSS</str>\n        
<str>yyyy-MM-dd'T'HH:mm:ssZ</str>\n        <str>yyyy-MM-dd'T'HH:mm:ss</str>\n   
     <str>yyyy-MM-dd'T'HH:mmZ</str>\n        <str>yyyy-MM-dd'T'HH:mm</str>\n    
    <str>yyyy-MM-dd HH:mm:ss.SSSZ</str>\n        <str>yyyy-MM-dd 
HH:mm:ss,SSSZ</str>\n        <str>yyyy-MM-dd HH:mm:ss.SSS</str>\n        
<str>yyyy-MM-dd HH:mm:ss,SSS</str>\n        <str>yyyy-MM-dd HH:mm:ssZ</str>\n   
     <str>yyyy-MM-dd HH:mm:ss</str>\n        <str>yyyy-MM-dd HH:mmZ</str>\n     
   <str>yyyy-MM-dd HH:mm</str>\n        <str>yyyy-MM-dd</str>\n      </arr>\n   
 </processor>\n    <processor class=\"solr.
 AddSchemaFieldsUpdateProcessorFactory\">\n      <str 
name=\"defaultFieldType\">key_lower_case</str>\n      <lst 
name=\"typeMapping\">\n        <str 
name=\"valueClass\">java.lang.Boolean</str>\n        <str 
name=\"fieldType\">boolean</str>\n      </lst>\n      <lst 
name=\"typeMapping\">\n        <str name=\"valueClass\">java.util.Date</str>\n  
      <str name=\"fieldType\">tdate</str>\n      </lst>\n      <lst 
name=\"typeMapping\">\n        <str name=\"valueClass\">java.lang.Long</str>\n  
      <str name=\"valueClass\">java.lang.Integer</str>\n        <str 
name=\"fieldType\">tlong</str>\n      </lst>\n      <lst 
name=\"typeMapping\">\n        <str 
name=\"valueClass\">java.lang.Number</str>\n        <str 
name=\"fieldType\">tdouble</str>\n      </lst>\n    </processor>\n    
<processor class=\"solr.LogUpdateProcessorFactory\"/>\n    <processor 
class=\"solr.RunUpdateProcessorFactory\"/>\n  
</updateRequestProcessorChain>\n\n\n  <!-- Deduplication\n\n       An example 
dedup update processo
 r that creates the \"id\" field\n       on the fly based on the hash code of 
some other fields.  This\n       example has overwriteDupes set to false since 
we are using the\n       id field as the signatureField and Solr will 
maintain\n       uniqueness based on that anyway.\n\n    -->\n  <!--\n     
<updateRequestProcessorChain name=\"dedupe\">\n       <processor 
class=\"solr.processor.SignatureUpdateProcessorFactory\">\n         <bool 
name=\"enabled\">true</bool>\n         <str name=\"signatureField\">id</str>\n  
       <bool name=\"overwriteDupes\">false</bool>\n         <str 
name=\"fields\">name,features,cat</str>\n         <str 
name=\"signatureClass\">solr.processor.Lookup3Signature</str>\n       
</processor>\n       <processor class=\"solr.LogUpdateProcessorFactory\" />\n   
    <processor class=\"solr.RunUpdateProcessorFactory\" />\n     
</updateRequestProcessorChain>\n    -->\n\n  <!-- Language identification\n\n   
    This example update chain identifies the language of the i
 ncoming\n       documents using the langid contrib. The detected language is\n 
      written to field language_s. No field name mapping is done.\n       The 
fields used for detection are text, title, subject and description,\n       
making this example suitable for detecting languages form full-text\n       
rich documents injected via ExtractingRequestHandler.\n       See more about 
langId at http://wiki.apache.org/solr/LanguageDetection\n    -->\n    <!--\n    
 <updateRequestProcessorChain name=\"langid\">\n       <processor 
class=\"org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory\">\n
         <str name=\"langid.fl\">text,title,subject,description</str>\n         
<str name=\"langid.langField\">language_s</str>\n         <str 
name=\"langid.fallback\">en</str>\n       </processor>\n       <processor 
class=\"solr.LogUpdateProcessorFactory\" />\n       <processor 
class=\"solr.RunUpdateProcessorFactory\" />\n     
</updateRequestProcessorChain>\n    -->\n\n  
 <!-- Script update processor\n\n    This example hooks in an update processor 
implemented using JavaScript.\n\n    See more about the script update processor 
at http://wiki.apache.org/solr/ScriptUpdateProcessor\n  -->\n  <!--\n    
<updateRequestProcessorChain name=\"script\">\n      <processor 
class=\"solr.StatelessScriptUpdateProcessorFactory\">\n        <str 
name=\"script\">update-script.js</str>\n        <lst name=\"params\">\n         
 <str name=\"config_param\">example config parameter</str>\n        </lst>\n    
  </processor>\n      <processor class=\"solr.RunUpdateProcessorFactory\" />\n  
  </updateRequestProcessorChain>\n  -->\n\n  <!-- Response Writers\n\n       
http://wiki.apache.org/solr/QueryResponseWriter\n\n       Request responses 
will be written using the writer specified by\n       the 'wt' request 
parameter matching the name of a registered\n       writer.\n\n       The 
\"default\" writer is the default and will be used if 'wt' is\n       not 
specified in the reque
 st.\n    -->\n  <!-- The following response writers are implicitly configured 
unless\n       overridden...\n    -->\n  <!--\n     <queryResponseWriter 
name=\"xml\"\n                          default=\"true\"\n                      
    class=\"solr.XMLResponseWriter\" />\n     <queryResponseWriter 
name=\"json\" class=\"solr.JSONResponseWriter\"/>\n     <queryResponseWriter 
name=\"python\" class=\"solr.PythonResponseWriter\"/>\n     
<queryResponseWriter name=\"ruby\" class=\"solr.RubyResponseWriter\"/>\n     
<queryResponseWriter name=\"php\" class=\"solr.PHPResponseWriter\"/>\n     
<queryResponseWriter name=\"phps\" 
class=\"solr.PHPSerializedResponseWriter\"/>\n     <queryResponseWriter 
name=\"csv\" class=\"solr.CSVResponseWriter\"/>\n     <queryResponseWriter 
name=\"schema.xml\" class=\"solr.SchemaXmlResponseWriter\"/>\n    -->\n\n  
<queryResponseWriter name=\"json\" class=\"solr.JSONResponseWriter\">\n     
<!-- For the purposes of the tutorial, JSON responses are written as\n      p
 lain text so that they are easy to read in *any* browser.\n      If you expect 
a MIME type of \"application/json\" just remove this override.\n     -->\n    
<str name=\"content-type\">text/plain; charset=UTF-8</str>\n  
</queryResponseWriter>\n\n  <!--\n     Custom response writers can be declared 
as needed...\n    -->\n  <queryResponseWriter name=\"velocity\" 
class=\"solr.VelocityResponseWriter\" startup=\"lazy\">\n    <str 
name=\"template.base.dir\">${velocity.template.base.dir:}</str>\n  
</queryResponseWriter>\n\n  <!-- XSLT response writer transforms the XML output 
by any xslt file found\n       in Solr's conf/xslt directory.  Changes to xslt 
files are checked for\n       every xsltCacheLifetimeSeconds.\n    -->\n  
<queryResponseWriter name=\"xslt\" class=\"solr.XSLTResponseWriter\">\n    <int 
name=\"xsltCacheLifetimeSeconds\">5</int>\n  </queryResponseWriter>\n\n  <!-- 
Query Parsers\n\n       http://wiki.apache.org/solr/SolrQuerySyntax\n\n       
Multiple QParserPlugins can be re
 gistered by name, and then\n       used in either the \"defType\" param for 
the QueryComponent (used\n       by SearchHandler) or in LocalParams\n    -->\n 
 <!-- example of registering a query parser -->\n  <!--\n     <queryParser 
name=\"myparser\" class=\"com.mycompany.MyQParserPlugin\"/>\n    -->\n\n  <!-- 
Function Parsers\n\n       http://wiki.apache.org/solr/FunctionQuery\n\n       
Multiple ValueSourceParsers can be registered by name, and then\n       used as 
function names when using the \"func\" QParser.\n    -->\n  <!-- example of 
registering a custom function parser  -->\n  <!--\n     <valueSourceParser 
name=\"myfunc\"\n                        
class=\"com.mycompany.MyValueSourceParser\" />\n    -->\n\n\n  <!-- Document 
Transformers\n       http://wiki.apache.org/solr/DocTransformers\n    -->\n  
<!--\n     Could be something like:\n     <transformer name=\"db\" 
class=\"com.mycompany.LoadFromDatabaseTransformer\" >\n       <int 
name=\"connection\">jdbc://....</int>\n     </tr
 ansformer>\n\n     To add a constant value to all docs, use:\n     
<transformer name=\"mytrans2\" 
class=\"org.apache.solr.response.transform.ValueAugmenterFactory\" >\n       
<int name=\"value\">5</int>\n     </transformer>\n\n     If you want the user 
to still be able to change it with _value:something_ use this:\n     
<transformer name=\"mytrans3\" 
class=\"org.apache.solr.response.transform.ValueAugmenterFactory\" >\n       
<double name=\"defaultValue\">5</double>\n     </transformer>\n\n      If you 
are using the QueryElevationComponent, you may wish to mark documents that get 
boosted.  The\n      EditorialMarkerFactory will do exactly that:\n     
<transformer name=\"qecBooster\" 
class=\"org.apache.solr.response.transform.EditorialMarkerFactory\" />\n    
-->\n\n\n  <!-- Legacy config for the admin interface -->\n  <admin>\n    
<defaultQuery>*:*</defaultQuery>\n  </admin>\n\n</config>",
+            "ranger_audit_logs_merge_factor": "5"
+        },
         "ranger-ugsync-site": {
             "ranger.usersync.ldap.binddn": "", 
             "ranger.usersync.policymgr.username": "rangerusersync", 
@@ -748,7 +757,7 @@
             "infra_solr_ssl_enabled": "false",
             "infra_solr_client_log_dir": "/var/log/ambari-infra-solr-client",
             "infra_solr_web_kerberos_principal": "HTTP/_h...@example.com",
-            "infra_solr_znode": "/ambari-solr",
+            "infra_solr_znode": "/infra-solr",
             "infra_solr_keystore_password": "bigdata",
             "infra_solr_port": "8886",
             "infra_solr_kerberos_principal": "infra-solr/_h...@example.com",

Reply via email to