Ignore:
Timestamp:
2015-06-30T19:17:36+12:00 (9 years ago)
Author:
ak19
Message:

Final commit (I think) to get update to solr getTerms() to work on gs3 checkout. The solr-jdbm-demo collection needed to be rebuilt with the changes to the index. This time added in other .xml files from the lucene/solr upgrade to the colleciton, and updated schema.xml and solrconfig.xml. This last is especially necessary as it uses the new Greenstone custom SearchHandler to get getTerms() to work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gs3-extensions/solr/trunk/src/collect/solr-jdbm-demo/etc/conf/solrconfig.xml

    r27850 r30001  
    3030    -->
    3131
    32   <!-- Set this to 'false' if you want solr to continue working after
    33        it has encountered an severe configuration error.  In a
    34        production environment, you may want solr to keep working even
    35        if one handler is mis-configured.
    36 
    37        You may also set this to false using by setting the system
    38        property:
    39 
    40          -Dsolr.abortOnConfigurationError=false
    41     -->
    42   <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
    43  
    4432  <!-- Controls what version of Lucene various components of Solr
    4533       adhere to.  Generally, you want to use the latest version to
     
    4735       that you fully re-index after changing this setting as it can
    4836       affect both how text is indexed and queried.
    49     -->
    50   <luceneMatchVersion>LUCENE_33</luceneMatchVersion>
    51 
    52   <!-- lib directives can be used to instruct Solr to load an Jars
     37  -->
     38  <luceneMatchVersion>4.7</luceneMatchVersion>
     39
     40  <!-- <lib/> directives can be used to instruct Solr to load an Jars
    5341       identified and use them to resolve any "plugins" specified in
    5442       your solrconfig.xml or schema.xml (ie: Analyzers, Request
     
    5745       All directories and paths are resolved relative to the
    5846       instanceDir.
     47
     48       Please note that <lib/> directives are processed in the order
     49       that they appear in your solrconfig.xml file, and are "stacked"
     50       on top of each other when building a ClassLoader - so if you have
     51       plugin jars with dependencies on other jars, the "lower level"
     52       dependency jars should be loaded first.
    5953
    6054       If a "./lib" directory exists in your instanceDir, all files
     
    6458              <lib dir="./lib" />
    6559    -->
    66   <!-- A dir option by itself adds any files found in the directory to
    67        the classpath, this is useful for including all jars in a
     60
     61  <!-- A 'dir' option by itself adds any files found in the directory
     62       to the classpath, this is useful for including all jars in a
    6863       directory.
    69     -->
    70   <lib dir="../../contrib/extraction/lib" />
    71   <!-- When a regex is specified in addition to a directory, only the
     64
     65       When a 'regex' is specified in addition to a 'dir', only the
    7266       files in that directory which completely match the regex
    7367       (anchored on both ends) will be included.
    74     -->
    75   <lib dir="../../dist/" regex="apache-solr-cell-\d.*\.jar" />
    76   <lib dir="../../dist/" regex="apache-solr-clustering-\d.*\.jar" />
    77   <lib dir="../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
    78 
    79   <!-- If a dir option (with or without a regex) is used and nothing
    80        is found that matches, it will be ignored
    81     -->
    82   <lib dir="../../contrib/clustering/lib/" />
    83   <lib dir="/total/crap/dir/ignored" />
    84   <!-- an exact path can be used to specify a specific file.  This
    85        will cause a serious error to be logged if it can't be loaded.
     68
     69       If a 'dir' option (with or without a regex) is used and nothing
     70       is found that matches, a warning will be logged.
     71
     72       The examples below can be used to load some solr-contribs along
     73       with their external dependencies.
     74    -->
     75  <lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
     76  <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
     77
     78  <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
     79  <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
     80
     81  <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
     82  <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
     83
     84  <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
     85  <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
     86
     87  <!-- an exact 'path' can be used instead of a 'dir' to specify a
     88       specific jar file.  This will cause a serious error to be logged
     89       if it can't be loaded.
    8690    -->
    8791  <!--
    88   <lib path="../a-jar-that-does-not-exist.jar" />
     92     <lib path="../a-jar-that-does-not-exist.jar" />
    8993  -->
    9094 
     
    101105  <!-- The DirectoryFactory to use for indexes.
    102106       
    103        solr.StandardDirectoryFactory, the default, is filesystem
    104        based.  solr.RAMDirectoryFactory is memory based, not
     107       solr.StandardDirectoryFactory is filesystem
     108       based and tries to pick the best implementation for the current
     109       JVM and platform.  solr.NRTCachingDirectoryFactory, the default,
     110       wraps solr.StandardDirectoryFactory and caches small files in memory
     111       for better NRT performance.
     112
     113       One can force a particular implementation via solr.MMapDirectoryFactory,
     114       solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
     115
     116       solr.RAMDirectoryFactory is memory based, not
    105117       persistent, and doesn't work with replication.
    106118    -->
    107119  <directoryFactory name="DirectoryFactory"
    108                     class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
    109 
    110 
    111   <!-- Index Defaults
    112 
    113        Values here affect all index writers and act as a default
    114        unless overridden.
    115 
    116        WARNING: See also the <mainIndex> section below for parameters
    117        that overfor Solr's main Lucene index.
    118     -->
    119   <indexDefaults>
    120 
    121     <useCompoundFile>false</useCompoundFile>
    122 
     120                    class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
     121   
     122         
     123    <!-- These will be used if you are using the solr.HdfsDirectoryFactory,
     124         otherwise they will be ignored. If you don't plan on using hdfs,
     125         you can safely remove this section. -->     
     126    <!-- The root directory that collection data should be written to. -->     
     127    <str name="solr.hdfs.home">${solr.hdfs.home:}</str>
     128    <!-- The hadoop configuration files to use for the hdfs client. -->   
     129    <str name="solr.hdfs.confdir">${solr.hdfs.confdir:}</str>
     130    <!-- Enable/Disable the hdfs cache. -->   
     131    <str name="solr.hdfs.blockcache.enabled">${solr.hdfs.blockcache.enabled:true}</str>
     132   
     133  </directoryFactory>
     134
     135  <!-- The CodecFactory for defining the format of the inverted index.
     136       The default implementation is SchemaCodecFactory, which is the official Lucene
     137       index format, but hooks into the schema to provide per-field customization of
     138       the postings lists and per-document values in the fieldType element
     139       (postingsFormat/docValuesFormat). Note that most of the alternative implementations
     140       are experimental, so if you choose to customize the index format, its a good
     141       idea to convert back to the official format e.g. via IndexWriter.addIndexes(IndexReader)
     142       before upgrading to a newer version to avoid unnecessary reindexing.
     143  -->
     144  <codecFactory class="solr.SchemaCodecFactory"/>
     145
     146  <!-- To enable dynamic schema REST APIs, use the following for <schemaFactory>:
     147 
     148       <schemaFactory class="ManagedIndexSchemaFactory">
     149         <bool name="mutable">true</bool>
     150         <str name="managedSchemaResourceName">managed-schema</str>
     151       </schemaFactory>
     152       
     153       When ManagedIndexSchemaFactory is specified, Solr will load the schema from
     154       he resource named in 'managedSchemaResourceName', rather than from schema.xml.
     155       Note that the managed schema resource CANNOT be named schema.xml.  If the managed
     156       schema does not exist, Solr will create it after reading schema.xml, then rename
     157       'schema.xml' to 'schema.xml.bak'.
     158       
     159       Do NOT hand edit the managed schema - external modifications will be ignored and
     160       overwritten as a result of schema modification REST API calls.
     161
     162       When ManagedIndexSchemaFactory is specified with mutable = true, schema
     163       modification REST API calls will be allowed; otherwise, error responses will be
     164       sent back for these requests.
     165  -->
     166  <schemaFactory class="ClassicIndexSchemaFactory"/>
     167
     168  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     169       Index Config - These settings control low-level behavior of indexing
     170       Most example settings here show the default value, but are commented
     171       out, to more easily see where customizations have been made.
     172       
     173       Note: This replaces <indexDefaults> and <mainIndex> from older versions
     174       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
     175  <indexConfig>
     176    <!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
     177         LimitTokenCountFilterFactory in your fieldType definition. E.g.
     178     <filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
     179    -->
     180    <!-- Maximum time to wait for a write lock (ms) for an IndexWriter. Default: 1000 -->
     181    <!-- <writeLockTimeout>1000</writeLockTimeout>  -->
     182
     183    <!-- The maximum number of simultaneous threads that may be
     184         indexing documents at once in IndexWriter; if more than this
     185         many threads arrive they will wait for others to finish.
     186         Default in Solr/Lucene is 8. -->
     187    <!-- <maxIndexingThreads>8</maxIndexingThreads>  -->
     188
     189    <!-- Expert: Enabling compound file will use less files for the index,
     190         using fewer file descriptors on the expense of performance decrease.
     191         Default in Lucene is "true". Default in Solr is "false" (since 3.6) -->
     192    <!-- <useCompoundFile>false</useCompoundFile> -->
     193
     194    <!-- ramBufferSizeMB sets the amount of RAM that may be used by Lucene
     195         indexing for buffering added documents and deletions before they are
     196         flushed to the Directory.
     197         maxBufferedDocs sets a limit on the number of documents buffered
     198         before flushing.
     199         If both ramBufferSizeMB and maxBufferedDocs is set, then
     200         Lucene will flush based on whichever limit is hit first.
     201         The default is 100 MB.  -->
     202    <!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
     203    <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
     204
     205    <!-- Expert: Merge Policy
     206         The Merge Policy in Lucene controls how merging of segments is done.
     207         The default since Solr/Lucene 3.3 is TieredMergePolicy.
     208         The default since Lucene 2.3 was the LogByteSizeMergePolicy,
     209         Even older versions of Lucene used LogDocMergePolicy.
     210      -->
     211    <!--
     212        <mergePolicy class="org.apache.lucene.index.TieredMergePolicy">
     213          <int name="maxMergeAtOnce">10</int>
     214          <int name="segmentsPerTier">10</int>
     215        </mergePolicy>
     216      -->
     217       
     218    <!-- Merge Factor
     219         The merge factor controls how many segments will get merged at a time.
     220         For TieredMergePolicy, mergeFactor is a convenience parameter which
     221         will set both MaxMergeAtOnce and SegmentsPerTier at once.
     222         For LogByteSizeMergePolicy, mergeFactor decides how many new segments
     223         will be allowed before they are merged into one.
     224         Default is 10 for both merge policies.
     225      -->
     226    <!--
    123227    <mergeFactor>10</mergeFactor>
    124     <!-- Sets the amount of RAM that may be used by Lucene indexing
    125          for buffering added documents and deletions before they are
    126          flushed to the Directory.  -->
    127     <ramBufferSizeMB>32</ramBufferSizeMB>
    128     <!-- If both ramBufferSizeMB and maxBufferedDocs is set, then
    129          Lucene will flush based on whichever limit is hit first. 
    130       -->
    131     <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
    132 
    133     <maxFieldLength>10000</maxFieldLength>
    134     <writeLockTimeout>1000</writeLockTimeout>
    135     <commitLockTimeout>10000</commitLockTimeout>
    136 
    137     <!-- Expert: Merge Policy
    138 
    139          The Merge Policy in Lucene controls how merging is handled by
    140          Lucene.  The default in Solr 3.3 is TieredMergePolicy.
    141          
    142          The default in 2.3 was the LogByteSizeMergePolicy,
    143          previous versions used LogDocMergePolicy.
    144          
    145          LogByteSizeMergePolicy chooses segments to merge based on
    146          their size.  The Lucene 2.2 default, LogDocMergePolicy chose
    147          when to merge based on number of documents
    148          
    149          Other implementations of MergePolicy must have a no-argument
    150          constructor
    151       -->
    152     <!--
    153        <mergePolicy class="org.apache.lucene.index.TieredMergePolicy"/>
    154        -->
     228      -->
    155229
    156230    <!-- Expert: Merge Scheduler
    157 
    158231         The Merge Scheduler in Lucene controls how merges are
    159232         performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
     
    164237       <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
    165238       -->
    166      
     239
    167240    <!-- LockFactory
    168241
     
    178251         simple = SimpleFSLockFactory  - uses a plain file for locking
    179252
    180          (For backwards compatibility with Solr 1.2, 'simple' is the
    181          default if not specified.)
     253         Defaults: 'native' is default for Solr3.6 and later, otherwise
     254                   'simple' is the default
    182255
    183256         More details on the nuances of each LockFactory...
    184257         http://wiki.apache.org/lucene-java/AvailableLockFactories
    185258    -->
    186     <lockType>native</lockType>
    187 
    188     <!-- Expert: Controls how often Lucene loads terms into memory
    189          Default is 128 and is likely good for most everyone.
    190       -->
    191     <!-- <termIndexInterval>256</termIndexInterval> -->
    192   </indexDefaults>
    193 
    194   <!-- Main Index
    195 
    196        Values here override the values in the <indexDefaults> section
    197        for the main on disk index.
    198     -->
    199   <mainIndex>
    200 
    201     <useCompoundFile>false</useCompoundFile>
    202     <ramBufferSizeMB>32</ramBufferSizeMB>
    203     <mergeFactor>10</mergeFactor>
     259    <lockType>${solr.lock.type:native}</lockType>
    204260
    205261    <!-- Unlock On Startup
     
    208264         This defeats the locking mechanism that allows multiple
    209265         processes to safely access a lucene index, and should be used
    210          with care.
    211 
    212          This is not needed if lock type is 'none' or 'single'
     266         with care. Default is "false".
     267
     268         This is not needed if lock type is 'single'
    213269     -->
     270    <!--
    214271    <unlockOnStartup>false</unlockOnStartup>
     272      -->
    215273   
    216     <!-- If true, IndexReaders will be reopened (often more efficient)
    217          instead of closed and then opened.
    218       -->
    219     <reopenReaders>true</reopenReaders>
     274    <!-- Expert: Controls how often Lucene loads terms into memory
     275         Default is 128 and is likely good for most everyone.
     276      -->
     277    <!-- <termIndexInterval>128</termIndexInterval> -->
     278
     279    <!-- If true, IndexReaders will be opened/reopened from the IndexWriter
     280         instead of from the Directory. Hosts in a master/slave setup
     281         should have this set to false while those in a SolrCloud
     282         cluster need to be set to true. Default: true
     283      -->
     284    <!--
     285    <nrtMode>true</nrtMode>
     286      -->
    220287
    221288    <!-- Commit Deletion Policy
    222 
    223          Custom deletion policies can specified here. The class must
     289         Custom deletion policies can be specified here. The class must
    224290         implement org.apache.lucene.index.IndexDeletionPolicy.
    225291
    226          http://lucene.apache.org/java/2_9_1/api/all/org/apache/lucene/index/IndexDeletionPolicy.html
    227 
    228          The standard Solr IndexDeletionPolicy implementation supports
     292         The default Solr IndexDeletionPolicy implementation supports
    229293         deleting index commit points on number of commits, age of
    230294         commit point and optimized status.
     
    233297         of the criteria.
    234298    -->
     299    <!--
    235300    <deletionPolicy class="solr.SolrDeletionPolicy">
     301    -->
    236302      <!-- The number of commit points to be kept -->
    237       <str name="maxCommitsToKeep">1</str>
     303      <!-- <str name="maxCommitsToKeep">1</str> -->
    238304      <!-- The number of optimized commit points to be kept -->
    239       <str name="maxOptimizedCommitsToKeep">0</str>
     305      <!-- <str name="maxOptimizedCommitsToKeep">0</str> -->
    240306      <!--
    241307          Delete all commit points once they have reached the given age.
     
    246312         <str name="maxCommitAge">1DAY</str>
    247313      -->
     314    <!--
    248315    </deletionPolicy>
     316    -->
    249317
    250318    <!-- Lucene Infostream
     
    253321         of detailed information when indexing.
    254322
    255          Setting The value to true will instruct the underlying Lucene
    256          IndexWriter to write its debugging info the specified file
    257       -->
    258      <infoStream file="INFOSTREAM.txt">false</infoStream>
    259 
    260   </mainIndex>
     323         Setting the value to true will instruct the underlying Lucene
     324         IndexWriter to write its info stream to solr's log. By default,
     325         this is enabled here, and controlled through log4j.properties.
     326      -->
     327     <infoStream>true</infoStream>
     328  </indexConfig>
     329
    261330
    262331  <!-- JMX
     
    281350  <updateHandler class="solr.DirectUpdateHandler2">
    282351
     352    <!-- Enables a transaction log, used for real-time get, durability, and
     353         and solr cloud replica recovery.  The log can grow as big as
     354         uncommitted changes to the index, so use of a hard autoCommit
     355         is recommended (see below).
     356         "dir" - the target directory for transaction logs, defaults to the
     357                solr data directory.  -->
     358    <updateLog>
     359      <str name="dir">${solr.ulog.dir:}</str>
     360    </updateLog>
     361 
    283362    <!-- AutoCommit
    284363
    285          Perform a <commit/> automatically under certain conditions.
     364         Perform a hard commit automatically under certain conditions.
    286365         Instead of enabling autoCommit, consider using "commitWithin"
    287366         when adding documents.
     
    292371                   commit before automatically triggering a new commit.
    293372
    294          maxTime - Maximum amount of time that is allowed to pass
    295                    since a document was added before automaticly
     373         maxTime - Maximum amount of time in ms that is allowed to pass
     374                   since a document was added before automatically
    296375                   triggering a new commit.
    297       -->
    298     <!--
    299        <autoCommit>
    300          <maxDocs>10000</maxDocs>
    301          <maxTime>1000</maxTime>
    302        </autoCommit>
    303       -->
     376         openSearcher - if false, the commit causes recent index changes
     377           to be flushed to stable storage, but does not cause a new
     378           searcher to be opened to make those changes visible.
     379
     380         If the updateLog is enabled, then it's highly recommended to
     381         have some sort of hard autoCommit to limit the log size.
     382      -->
     383     <autoCommit>
     384       <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
     385       <openSearcher>false</openSearcher>
     386     </autoCommit>
     387
     388    <!-- softAutoCommit is like autoCommit except it causes a
     389         'soft' commit which only ensures that changes are visible
     390         but does not ensure that data is synced to disk.  This is
     391         faster and more near-realtime friendly than a hard commit.
     392      -->
     393
     394     <autoSoftCommit>
     395       <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
     396     </autoSoftCommit>
    304397
    305398    <!-- Update Related Event Listeners
     
    334427       </listener>
    335428      -->
     429
    336430  </updateHandler>
    337431 
     
    373467    -->
    374468
    375 
     469  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     470       Query section - these settings control query time things like caches
     471       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    376472  <query>
    377473    <!-- Max Boolean Clauses
     
    448544                   autowarmCount="0"/>
    449545   
     546    <!-- custom cache currently used by block join -->
     547    <cache name="perSegFilter"
     548      class="solr.search.LRUCache"
     549      size="10"
     550      initialSize="0"
     551      autowarmCount="10"
     552      regenerator="solr.NoOpRegenerator" />
     553
    450554    <!-- Field Value Cache
    451555         
     
    587691       should behave when processing requests for this SolrCore.
    588692
    589        handleSelect affects the behavior of requests such as /select?qt=XXX
     693       handleSelect is a legacy option that affects the behavior of requests
     694       such as /select?qt=XXX
    590695
    591696       handleSelect="true" will cause the SolrDispatchFilter to process
    592        the request and will result in consistent error handling and
    593        formatting for all types of requests.
     697       the request and dispatch the query to a handler specified by the
     698       "qt" param, assuming "/select" isn't already registered.
    594699
    595700       handleSelect="false" will cause the SolrDispatchFilter to
    596        ignore "/select" requests and fallback to using the legacy
    597        SolrServlet and it's Solr 1.1 style error formatting
    598     -->
    599   <requestDispatcher handleSelect="true" >
     701       ignore "/select" requests, resulting in a 404 unless a handler
     702       is explicitly registered with the name "/select"
     703
     704       handleSelect="true" is not recommended for new users, but is the default
     705       for backwards compatibility
     706    -->
     707  <requestDispatcher handleSelect="false" >
    600708    <!-- Request Parsing
    601709
     
    607715         and stream.url parameters for specifying remote streams.
    608716
    609          multipartUploadLimitInKB - specifies the max size of
     717         multipartUploadLimitInKB - specifies the max size (in KiB) of
    610718         Multipart File Uploads that Solr will allow in a Request.
     719         
     720         formdataUploadLimitInKB - specifies the max size (in KiB) of
     721         form data (application/x-www-form-urlencoded) sent via
     722         POST. You can use POST to pass request parameters not
     723         fitting into the URL.
     724         
     725         addHttpRequestToContext - if set to true, it will instruct
     726         the requestParsers to include the original HttpServletRequest
     727         object in the context map of the SolrQueryRequest under the
     728         key "httpRequest". It will not be used by any of the existing
     729         Solr components, but may be useful when developing custom
     730         plugins.
    611731         
    612732         *** WARNING ***
     
    617737      -->
    618738    <requestParsers enableRemoteStreaming="true"
    619                     multipartUploadLimitInKB="2048000" />
     739                    multipartUploadLimitInKB="2048000"
     740                    formdataUploadLimitInKB="2048"
     741                    addHttpRequestToContext="false"/>
    620742
    621743    <!-- HTTP Caching
     
    678800       http://wiki.apache.org/solr/SolrRequestHandler
    679801
    680        incoming queries will be dispatched to the correct handler
    681        based on the path or the qt (query type) param.
    682 
    683        Names starting with a '/' are accessed with the a path equal to
    684        the registered name.  Names without a leading '/' are accessed
    685        with: http://host/app/[core/]select?qt=name
    686 
    687        If a /select request is processed with out a qt param
    688        specified, the requestHandler that declares default="true" will
    689        be used.
    690        
     802       Incoming queries will be dispatched to a specific handler by name
     803       based on the path specified in the request.
     804
     805       Legacy behavior: If the request path uses "/select" but no Request
     806       Handler has that name, and if handleSelect="true" has been specified in
     807       the requestDispatcher, then the Request Handler is dispatched based on
     808       the qt parameter.  Handlers without a leading '/' are accessed this way
     809       like so: http://host/app/[core/]select?qt=name  If no qt is
     810       given, then the requestHandler that declares default="true" will be
     811       used or the one named "standard".
     812
    691813       If a Request Handler is declared with startup="lazy", then it will
    692814       not be initialized until the first request that uses it.
     
    702824       queries across multiple shards
    703825    -->
    704   <requestHandler name="search" class="solr.SearchHandler" default="true">
     826  <!--<requestHandler name="/select" class="solr.SearchHandler">-->
     827  <requestHandler name="/select" class="org.greenstone.solrserver.Greenstone3SearchHandler">
    705828    <!-- default values for query parameters can be specified, these
    706829         will be overridden by parameters in the request
     
    709832       <str name="echoParams">explicit</str>
    710833       <int name="rows">10</int>
     834       <str name="df">text</str>
    711835     </lst>
    712836    <!-- In addition to defaults, "appends" params can be specified
     
    764888    </requestHandler>
    765889
    766   <!-- A Robust Example
    767 
     890  <!-- A request handler that returns indented JSON by default -->
     891  <!--<requestHandler name="/query" class="solr.SearchHandler">-->
     892  <requestHandler name="/query" class="org.greenstone.solrserver.Greenstone3SearchHandler">
     893     <lst name="defaults">
     894       <str name="echoParams">explicit</str>
     895       <str name="wt">json</str>
     896       <str name="indent">true</str>
     897       <str name="df">text</str>
     898     </lst>
     899  </requestHandler>
     900
     901
     902  <!-- realtime get handler, guaranteed to return the latest stored fields of
     903       any document, without the need to commit or open a new searcher.  The
     904       current implementation relies on the updateLog feature being enabled.
     905
     906       ** WARNING **
     907       Do NOT disable the realtime get handler at /get if you are using
     908       SolrCloud otherwise any leader election will cause a full sync in ALL
     909       replicas for the shard in question. Similarly, a replica recovery will
     910       also always fetch the complete index from the leader because a partial
     911       sync will not be possible in the absence of this handler.
     912  -->
     913  <requestHandler name="/get" class="solr.RealTimeGetHandler">
     914     <lst name="defaults">
     915       <str name="omitHeader">true</str>
     916       <str name="wt">json</str>
     917       <str name="indent">true</str>
     918     </lst>
     919  </requestHandler>
     920
     921 
     922  <!-- A Robust Example
     923       
    768924       This example SearchHandler declaration shows off usage of the
    769925       SearchHandler with many defaults declared
     
    779935       <!-- VelocityResponseWriter settings -->
    780936       <str name="wt">velocity</str>
    781 
    782937       <str name="v.template">browse</str>
    783938       <str name="v.layout">layout</str>
    784939       <str name="title">Solritas</str>
    785940
     941       <!-- Query settings -->
    786942       <str name="defType">edismax</str>
     943       <str name="qf">
     944          text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
     945          title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
     946       </str>
     947       <str name="df">text</str>
     948       <str name="mm">100%</str>
    787949       <str name="q.alt">*:*</str>
    788950       <str name="rows">10</str>
    789951       <str name="fl">*,score</str>
     952
    790953       <str name="mlt.qf">
    791954         text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
     955         title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
    792956       </str>
    793        <str name="mlt.fl">text,features,name,sku,id,manu,cat</str>
     957       <str name="mlt.fl">text,features,name,sku,id,manu,cat,title,description,keywords,author,resourcename</str>
    794958       <int name="mlt.count">3</int>
    795959
    796        <str name="qf">
    797           text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
    798        </str>
    799 
     960       <!-- Faceting defaults -->
    800961       <str name="facet">on</str>
    801962       <str name="facet.field">cat</str>
    802963       <str name="facet.field">manu_exact</str>
     964       <str name="facet.field">content_type</str>
     965       <str name="facet.field">author_s</str>
    803966       <str name="facet.query">ipod</str>
    804967       <str name="facet.query">GB</str>
    805968       <str name="facet.mincount">1</str>
    806969       <str name="facet.pivot">cat,inStock</str>
     970       <str name="facet.range.other">after</str>
    807971       <str name="facet.range">price</str>
    808972       <int name="f.price.facet.range.start">0</int>
    809973       <int name="f.price.facet.range.end">600</int>
    810974       <int name="f.price.facet.range.gap">50</int>
    811        <str name="f.price.facet.range.other">after</str>
     975       <str name="facet.range">popularity</str>
     976       <int name="f.popularity.facet.range.start">0</int>
     977       <int name="f.popularity.facet.range.end">10</int>
     978       <int name="f.popularity.facet.range.gap">3</int>
    812979       <str name="facet.range">manufacturedate_dt</str>
    813980       <str name="f.manufacturedate_dt.facet.range.start">NOW/YEAR-10YEARS</str>
     
    817984       <str name="f.manufacturedate_dt.facet.range.other">after</str>
    818985
    819 
    820986       <!-- Highlighting defaults -->
    821987       <str name="hl">on</str>
    822        <str name="hl.fl">text features name</str>
     988       <str name="hl.fl">content features title name</str>
     989       <str name="hl.encoder">html</str>
     990       <str name="hl.simple.pre">&lt;b&gt;</str>
     991       <str name="hl.simple.post">&lt;/b&gt;</str>
     992       <str name="f.title.hl.fragsize">0</str>
     993       <str name="f.title.hl.alternateField">title</str>
    823994       <str name="f.name.hl.fragsize">0</str>
    824995       <str name="f.name.hl.alternateField">name</str>
     996       <str name="f.content.hl.snippets">3</str>
     997       <str name="f.content.hl.fragsize">200</str>
     998       <str name="f.content.hl.alternateField">content</str>
     999       <str name="f.content.hl.maxAlternateFieldLength">750</str>
     1000
     1001       <!-- Spell checking defaults -->
     1002       <str name="spellcheck">on</str>
     1003       <str name="spellcheck.extendedResults">false</str>       
     1004       <str name="spellcheck.count">5</str>
     1005       <str name="spellcheck.alternativeTermCount">2</str>
     1006       <str name="spellcheck.maxResultsForSuggest">5</str>       
     1007       <str name="spellcheck.collate">true</str>
     1008       <str name="spellcheck.collateExtendedResults">true</str> 
     1009       <str name="spellcheck.maxCollationTries">5</str>
     1010       <str name="spellcheck.maxCollations">3</str>           
    8251011     </lst>
     1012
     1013     <!-- append spellchecking to our list of components -->
    8261014     <arr name="last-components">
    8271015       <str>spellcheck</str>
    8281016     </arr>
    829      <!--
    830      <str name="url-scheme">httpx</str>
    831      -->
    8321017  </requestHandler>
    8331018
    834   <!-- XML Update Request Handler. 
     1019
     1020  <!-- Update Request Handler. 
    8351021       
    8361022       http://wiki.apache.org/solr/UpdateXmlMessages
    8371023
    8381024       The canonical Request Handler for Modifying the Index through
    839        commands specified using XML.
     1025       commands specified using XML, JSON, CSV, or JAVABIN
    8401026
    8411027       Note: Since solr1.1 requestHandlers requires a valid content
    8421028       type header if posted in the body. For example, curl now
    8431029       requires: -H 'Content-type:text/xml; charset=utf-8'
    844     -->
    845   <requestHandler name="/update"
    846                   class="solr.XmlUpdateRequestHandler">
     1030       
     1031       To override the request content type and force a specific
     1032       Content-type, use the request parameter:
     1033         ?update.contentType=text/csv
     1034       
     1035       This handler will pick a response format to match the input
     1036       if the 'wt' parameter is not explicit
     1037    -->
     1038  <requestHandler name="/update" class="solr.UpdateRequestHandler">
    8471039    <!-- See below for information on defining
    8481040         updateRequestProcessorChains that can be used by name
     
    8541046       </lst>
    8551047       -->
    856     </requestHandler>
    857   <!-- Binary Update Request Handler
    858        http://wiki.apache.org/solr/javabin
    859     -->
    860   <requestHandler name="/update/javabin"
    861                   class="solr.BinaryUpdateRequestHandler" />
    862 
    863   <!-- CSV Update Request Handler
    864        http://wiki.apache.org/solr/UpdateCSV
    865     -->
    866   <requestHandler name="/update/csv"
    867                   class="solr.CSVRequestHandler"
    868                   startup="lazy" />
    869 
    870   <!-- JSON Update Request Handler
    871        http://wiki.apache.org/solr/UpdateJSON
    872     -->
    873   <requestHandler name="/update/json"
    874                   class="solr.JsonUpdateRequestHandler"
    875                   startup="lazy" />
     1048  </requestHandler>
     1049
     1050  <!-- for back compat with clients using /update/json and /update/csv --> 
     1051  <requestHandler name="/update/json" class="solr.UpdateRequestHandler">
     1052        <lst name="defaults">
     1053         <str name="stream.contentType">application/json</str>
     1054       </lst>
     1055  </requestHandler>
     1056  <requestHandler name="/update/csv" class="solr.UpdateRequestHandler">
     1057        <lst name="defaults">
     1058         <str name="stream.contentType">application/csv</str>
     1059       </lst>
     1060  </requestHandler>
    8761061
    8771062  <!-- Solr Cell Update Request Handler
     
    8841069                  class="solr.extraction.ExtractingRequestHandler" >
    8851070    <lst name="defaults">
    886       <!-- All the main content goes into "text"... if you need to return
    887            the extracted text or do highlighting, use a stored field. -->
    888       <str name="fmap.content">text</str>
    8891071      <str name="lowernames">true</str>
    8901072      <str name="uprefix">ignored_</str>
     
    8961078    </lst>
    8971079  </requestHandler>
     1080
    8981081
    8991082  <!-- Field Analysis Request Handler
     
    9251108
    9261109       An analysis handler that provides a breakdown of the analysis
    927        process of provided docuemnts. This handler expects a (single)
     1110       process of provided documents. This handler expects a (single)
    9281111       content stream with the following format:
    9291112
     
    9711154    -->
    9721155  <!-- If you wish to hide files under ${solr.home}/conf, explicitly
    973        register the ShowFileRequestHandler using:
     1156       register the ShowFileRequestHandler using the definition below.
     1157       NOTE: The glob pattern ('*') is the only pattern supported at present, *.xml will
     1158             not exclude all files ending in '.xml'. Use it to exclude _all_ updates
    9741159    -->
    9751160  <!--
     
    9791164         <str name="hidden">synonyms.txt</str>
    9801165         <str name="hidden">anotherfile.txt</str>
     1166         <str name="hidden">*</str>
    9811167       </lst>
    9821168     </requestHandler>
     
    9851171  <!-- ping/healthcheck -->
    9861172  <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
     1173    <lst name="invariants">
     1174      <str name="q">solrpingquery</str>
     1175    </lst>
    9871176    <lst name="defaults">
    988       <str name="qt">search</str>
    989       <str name="q">solrpingquery</str>
    9901177      <str name="echoParams">all</str>
    9911178    </lst>
     1179    <!-- An optional feature of the PingRequestHandler is to configure the
     1180         handler with a "healthcheckFile" which can be used to enable/disable
     1181         the PingRequestHandler.
     1182         relative paths are resolved against the data dir
     1183      -->
     1184    <!-- <str name="healthcheckFile">server-enabled.txt</str> -->
    9921185  </requestHandler>
    9931186
     
    10031196
    10041197       The SolrReplicationHandler supports replicating indexes from a
    1005        "master" used for indexing and "salves" used for queries.
     1198       "master" used for indexing and "slaves" used for queries.
    10061199
    10071200       http://wiki.apache.org/solr/SolrReplication
    10081201
    1009        In the example below, remove the <lst name="master"> section if
    1010        this is just a slave and remove  the <lst name="slave"> section
    1011        if this is just a master.
    1012     -->
    1013   <!--
    1014      <requestHandler name="/replication" class="solr.ReplicationHandler" >
     1202       It is also necessary for SolrCloud to function (in Cloud mode, the
     1203       replication handler is used to bulk transfer segments when nodes
     1204       are added or need to recover).
     1205
     1206       https://wiki.apache.org/solr/SolrCloud/
     1207    -->
     1208  <requestHandler name="/replication" class="solr.ReplicationHandler" >
     1209    <!--
     1210       To enable simple master/slave replication, uncomment one of the
     1211       sections below, depending on whether this solr instance should be
     1212       the "master" or a "slave".  If this instance is a "slave" you will
     1213       also need to fill in the masterUrl to point to a real machine.
     1214    -->
     1215    <!--
    10151216       <lst name="master">
    10161217         <str name="replicateAfter">commit</str>
     
    10181219         <str name="confFiles">schema.xml,stopwords.txt</str>
    10191220       </lst>
     1221    -->
     1222    <!--
    10201223       <lst name="slave">
    1021          <str name="masterUrl">http://localhost:8983/solr/replication</str>
     1224         <str name="masterUrl">http://your-master-hostname:8983/solr</str>
    10221225         <str name="pollInterval">00:00:60</str>
    10231226       </lst>
    1024      </requestHandler>
    1025     -->
     1227    -->
     1228  </requestHandler>
    10261229
    10271230  <!-- Search Components
     
    10671270       
    10681271     -->
    1069 
     1272 
    10701273   <!-- Spell Check
    10711274
     
    10771280  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    10781281
    1079     <str name="queryAnalyzerFieldType">textSpell</str>
     1282    <str name="queryAnalyzerFieldType">text_general</str>
    10801283
    10811284    <!-- Multiple "Spell Checkers" can be declared and used by this
     
    10831286      -->
    10841287
    1085     <!-- a spellchecker built from a field of the main index, and
    1086          written to disk
    1087       -->
     1288    <!-- a spellchecker built from a field of the main index -->
    10881289    <lst name="spellchecker">
    10891290      <str name="name">default</str>
     1291      <str name="field">text</str>
     1292      <str name="classname">solr.DirectSolrSpellChecker</str>
     1293      <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
     1294      <str name="distanceMeasure">internal</str>
     1295      <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
     1296      <float name="accuracy">0.5</float>
     1297      <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
     1298      <int name="maxEdits">2</int>
     1299      <!-- the minimum shared prefix when enumerating terms -->
     1300      <int name="minPrefix">1</int>
     1301      <!-- maximum number of inspections per result. -->
     1302      <int name="maxInspections">5</int>
     1303      <!-- minimum length of a query term to be considered for correction -->
     1304      <int name="minQueryLength">4</int>
     1305      <!-- maximum threshold of documents a query term can appear to be considered for correction -->
     1306      <float name="maxQueryFrequency">0.01</float>
     1307      <!-- uncomment this to require suggestions to occur in 1% of the documents
     1308        <float name="thresholdTokenFrequency">.01</float>
     1309      -->
     1310    </lst>
     1311   
     1312    <!-- a spellchecker that can break or combine words.  See "/spell" handler below for usage -->
     1313    <lst name="spellchecker">
     1314      <str name="name">wordbreak</str>
     1315      <str name="classname">solr.WordBreakSolrSpellChecker</str>     
    10901316      <str name="field">name</str>
    1091       <str name="spellcheckIndexDir">spellchecker</str>
    1092       <!-- uncomment this to require terms to occur in 1% of the documents in order to be included in the dictionary
    1093         <float name="thresholdTokenFrequency">.01</float>
    1094       -->
     1317      <str name="combineWords">true</str>
     1318      <str name="breakWords">true</str>
     1319      <int name="maxChanges">10</int>
    10951320    </lst>
    10961321
     
    11001325         <str name="name">jarowinkler</str>
    11011326         <str name="field">spell</str>
     1327         <str name="classname">solr.DirectSolrSpellChecker</str>
    11021328         <str name="distanceMeasure">
    11031329           org.apache.lucene.search.spell.JaroWinklerDistance
    11041330         </str>
    1105          <str name="spellcheckIndexDir">spellcheckerJaro</str>
    11061331       </lst>
    11071332     -->
     
    11181343         <str name="name">freq</str>
    11191344         <str name="field">lowerfilt</str>
    1120          <str name="spellcheckIndexDir">spellcheckerFreq</str>
     1345         <str name="classname">solr.DirectSolrSpellChecker</str>
    11211346         <str name="comparatorClass">freq</str>
    1122          <str name="buildOnCommit">true</str>
    11231347      -->
    11241348
     
    11341358      -->
    11351359  </searchComponent>
    1136 
     1360 
    11371361  <!-- A request handler for demonstrating the spellcheck component. 
    11381362
     
    11501374  <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    11511375    <lst name="defaults">
    1152       <str name="spellcheck.onlyMorePopular">false</str>
    1153       <str name="spellcheck.extendedResults">false</str>
    1154       <str name="spellcheck.count">1</str>
     1376      <str name="df">text</str>
     1377      <!-- Solr will use suggestions from both the 'default' spellchecker
     1378           and from the 'wordbreak' spellchecker and combine them.
     1379           collations (re-written queries) can include a combination of
     1380           corrections from both spellcheckers -->
     1381      <str name="spellcheck.dictionary">default</str>
     1382      <str name="spellcheck.dictionary">wordbreak</str>
     1383      <str name="spellcheck">on</str>
     1384      <str name="spellcheck.extendedResults">true</str>       
     1385      <str name="spellcheck.count">10</str>
     1386      <str name="spellcheck.alternativeTermCount">5</str>
     1387      <str name="spellcheck.maxResultsForSuggest">5</str>       
     1388      <str name="spellcheck.collate">true</str>
     1389      <str name="spellcheck.collateExtendedResults">true</str> 
     1390      <str name="spellcheck.maxCollationTries">10</str>
     1391      <str name="spellcheck.maxCollations">5</str>         
    11551392    </lst>
    11561393    <arr name="last-components">
     
    11591396  </requestHandler>
    11601397
     1398  <searchComponent name="suggest" class="solr.SuggestComponent">
     1399    <lst name="suggester">
     1400      <str name="name">mySuggester</str>
     1401      <str name="lookupImpl">FuzzyLookupFactory</str>      <!-- org.apache.solr.spelling.suggest.fst -->
     1402      <str name="dictionaryImpl">DocumentDictionaryFactory</str>     <!-- org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory -->
     1403      <str name="field">cat</str>
     1404      <str name="weightField">price</str>
     1405      <str name="suggestAnalyzerFieldType">string</str>
     1406    </lst>
     1407  </searchComponent>
     1408
     1409  <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
     1410    <lst name="defaults">
     1411      <str name="suggest">true</str>
     1412      <str name="suggest.count">10</str>
     1413    </lst>
     1414    <arr name="components">
     1415      <str>suggest</str>
     1416    </arr>
     1417  </requestHandler>
    11611418  <!-- Term Vector Component
    11621419
     
    11721429       already specified request handlers.
    11731430    -->
    1174   <requestHandler name="tvrh" class="solr.SearchHandler" startup="lazy">
     1431  <requestHandler name="/tvrh" class="solr.SearchHandler" startup="lazy">
    11751432    <lst name="defaults">
     1433      <str name="df">text</str>
    11761434      <bool name="tv">true</bool>
    11771435    </lst>
     
    11831441  <!-- Clustering Component
    11841442
     1443       You'll need to set the solr.clustering.enabled system property
     1444       when running solr to run with clustering enabled:
     1445
     1446            java -Dsolr.clustering.enabled=true -jar start.jar
     1447
    11851448       http://wiki.apache.org/solr/ClusteringComponent
    1186 
    1187        This relies on third party jars which are notincluded in the
    1188        release.  To use this component (and the "/clustering" handler)
    1189        Those jars will need to be downloaded, and you'll need to set
    1190        the solr.cluster.enabled system property when running solr...
    1191 
    1192           java -Dsolr.clustering.enabled=true -jar start.jar
    1193     -->
    1194   <searchComponent name="clustering"
     1449       http://carrot2.github.io/solr-integration-strategies/
     1450    -->
     1451  <searchComponent name="clustering"
    11951452                   enable="${solr.clustering.enabled:false}"
    11961453                   class="solr.clustering.ClusteringComponent" >
    1197     <!-- Declare an engine -->
    11981454    <lst name="engine">
    1199       <!-- The name, only one can be named "default" -->
    1200       <str name="name">default</str>
    1201 
    1202       <!-- Class name of Carrot2 clustering algorithm.
    1203            
    1204            Currently available algorithms are:
    1205            
     1455      <str name="name">lingo</str>
     1456
     1457      <!-- Class name of a clustering algorithm compatible with the Carrot2 framework.
     1458
     1459           Currently available open source algorithms are:
    12061460           * org.carrot2.clustering.lingo.LingoClusteringAlgorithm
    12071461           * org.carrot2.clustering.stc.STCClusteringAlgorithm
    12081462           * org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm
    1209            
    1210            See http://project.carrot2.org/algorithms.html for the
    1211            algorithm's characteristics.
     1463
     1464           See http://project.carrot2.org/algorithms.html for more information.
     1465
     1466           A commercial algorithm Lingo3G (needs to be installed separately) is defined as:
     1467           * com.carrotsearch.lingo3g.Lingo3GClusteringAlgorithm
    12121468        -->
    12131469      <str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
    12141470
    1215       <!-- Overriding values for Carrot2 default algorithm attributes.
    1216 
    1217            For a description of all available attributes, see:
    1218            http://download.carrot2.org/stable/manual/#chapter.components.
    1219            Use attribute key as name attribute of str elements
    1220            below. These can be further overridden for individual
    1221            requests by specifying attribute key as request parameter
    1222            name and attribute value as parameter value.
    1223         -->
    1224       <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
    1225      
    1226       <!-- Location of Carrot2 lexical resources.
    1227 
    1228            A directory from which to load Carrot2-specific stop words
    1229            and stop labels. Absolute or relative to Solr config directory.
    1230            If a specific resource (e.g. stopwords.en) is present in the
    1231            specified dir, it will completely override the corresponding
    1232            default one that ships with Carrot2.
     1471      <!-- Override location of the clustering algorithm's resources
     1472           (attribute definitions and lexical resources).
     1473
     1474           A directory from which to load algorithm-specific stop words,
     1475           stop labels and attribute definition XMLs.
    12331476
    12341477           For an overview of Carrot2 lexical resources, see:
    12351478           http://download.carrot2.org/head/manual/#chapter.lexical-resources
    1236         -->
    1237       <str name="carrot.lexicalResourcesDir">clustering/carrot2</str>
    1238 
    1239       <!-- The language to assume for the documents.
    1240            
    1241            For a list of allowed values, see:
    1242            http://download.carrot2.org/stable/manual/#section.attribute.lingo.MultilingualClustering.defaultLanguage
     1479
     1480           For an overview of Lingo3G lexical resources, see:
     1481           http://download.carrotsearch.com/lingo3g/manual/#chapter.lexical-resources
    12431482       -->
    1244       <str name="MultilingualClustering.defaultLanguage">ENGLISH</str>
     1483      <str name="carrot.resourcesDir">clustering/carrot2</str>
    12451484    </lst>
     1485
     1486    <!-- An example definition for the STC clustering algorithm. -->
    12461487    <lst name="engine">
    12471488      <str name="name">stc</str>
    12481489      <str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
     1490    </lst>
     1491
     1492    <!-- An example definition for the bisecting kmeans clustering algorithm. -->
     1493    <lst name="engine">
     1494      <str name="name">kmeans</str>
     1495      <str name="carrot.algorithm">org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm</str>
    12491496    </lst>
    12501497  </searchComponent>
     
    12631510    <lst name="defaults">
    12641511      <bool name="clustering">true</bool>
    1265       <str name="clustering.engine">default</str>
    12661512      <bool name="clustering.results">true</bool>
    1267       <!-- The title field -->
     1513      <!-- Field name with the logical "title" of a each document (optional) -->
    12681514      <str name="carrot.title">name</str>
     1515      <!-- Field name with the logical "URL" of a each document (optional) -->
    12691516      <str name="carrot.url">id</str>
    1270       <!-- The field to cluster on -->
    1271        <str name="carrot.snippet">features</str>
    1272        <!-- produce summaries -->
    1273        <bool name="carrot.produceSummary">true</bool>
    1274        <!-- the maximum number of labels per cluster -->
    1275        <!--<int name="carrot.numDescriptions">5</int>-->
    1276        <!-- produce sub clusters -->
    1277        <bool name="carrot.outputSubClusters">false</bool>
    1278        
    1279        <str name="defType">edismax</str>
    1280        <str name="qf">
    1281           text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
    1282        </str>
    1283        <str name="q.alt">*:*</str>
    1284        <str name="rows">10</str>
    1285        <str name="fl">*,score</str>
    1286     </lst>     
     1517      <!-- Field name with the logical "content" of a each document (optional) -->
     1518      <str name="carrot.snippet">features</str>
     1519      <!-- Apply highlighter to the title/ content and use this for clustering. -->
     1520      <bool name="carrot.produceSummary">true</bool>
     1521      <!-- the maximum number of labels per cluster -->
     1522      <!--<int name="carrot.numDescriptions">5</int>-->
     1523      <!-- produce sub clusters -->
     1524      <bool name="carrot.outputSubClusters">false</bool>
     1525
     1526      <!-- Configure the remaining request handler parameters. -->
     1527      <str name="defType">edismax</str>
     1528      <str name="qf">
     1529        text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
     1530      </str>
     1531      <str name="q.alt">*:*</str>
     1532      <str name="rows">10</str>
     1533      <str name="fl">*,score</str>
     1534    </lst>
    12871535    <arr name="last-components">
    12881536      <str>clustering</str>
     
    13031551     <lst name="defaults">
    13041552      <bool name="terms">true</bool>
     1553      <bool name="distrib">false</bool>
    13051554    </lst>     
    13061555    <arr name="components">
     
    13181567       scoring.
    13191568    -->
    1320 <!--
    13211569  <searchComponent name="elevator" class="solr.QueryElevationComponent" >
    1322 -->
    13231570    <!-- pick a fieldType to analyze queries -->
    1324 
    1325 <!--
    13261571    <str name="queryFieldType">string</str>
    13271572    <str name="config-file">elevate.xml</str>
    13281573  </searchComponent>
    1329 -->
     1574
    13301575  <!-- A request handler for demonstrating the elevator component -->
    1331 <!--
    13321576  <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
    13331577    <lst name="defaults">
    13341578      <str name="echoParams">explicit</str>
     1579      <str name="df">text</str>
    13351580    </lst>
    13361581    <arr name="last-components">
     
    13381583    </arr>
    13391584  </requestHandler>
    1340 -->
     1585
    13411586  <!-- Highlighting Component
    13421587
     
    13861631      <!-- Configure the standard fragListBuilder -->
    13871632      <fragListBuilder name="simple"
    1388                        default="true"
    13891633                       class="solr.highlight.SimpleFragListBuilder"/>
    1390 
     1634     
    13911635      <!-- Configure the single fragListBuilder -->
    13921636      <fragListBuilder name="single"
    13931637                       class="solr.highlight.SingleFragListBuilder"/>
    1394 
     1638     
     1639      <!-- Configure the weighted fragListBuilder -->
     1640      <fragListBuilder name="weighted"
     1641                       default="true"
     1642                       class="solr.highlight.WeightedFragListBuilder"/>
     1643     
    13951644      <!-- default tag FragmentsBuilder -->
    13961645      <fragmentsBuilder name="default"
     
    14171666        </lst>
    14181667      </fragmentsBuilder>
     1668     
     1669      <boundaryScanner name="default"
     1670                       default="true"
     1671                       class="solr.highlight.SimpleBoundaryScanner">
     1672        <lst name="defaults">
     1673          <str name="hl.bs.maxScan">10</str>
     1674          <str name="hl.bs.chars">.,!? &#9;&#10;&#13;</str>
     1675        </lst>
     1676      </boundaryScanner>
     1677     
     1678      <boundaryScanner name="breakIterator"
     1679                       class="solr.highlight.BreakIteratorBoundaryScanner">
     1680        <lst name="defaults">
     1681          <!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
     1682          <str name="hl.bs.type">WORD</str>
     1683          <!-- language and country are used when constructing Locale object.  -->
     1684          <!-- And the Locale object will be used when getting instance of BreakIterator -->
     1685          <str name="hl.bs.language">en</str>
     1686          <str name="hl.bs.country">US</str>
     1687        </lst>
     1688      </boundaryScanner>
    14191689    </highlighting>
    14201690  </searchComponent>
     
    14511721     </updateRequestProcessorChain>
    14521722    -->
    1453 
     1723 
     1724  <!-- Language identification
     1725
     1726       This example update chain identifies the language of the incoming
     1727       documents using the langid contrib. The detected language is
     1728       written to field language_s. No field name mapping is done.
     1729       The fields used for detection are text, title, subject and description,
     1730       making this example suitable for detecting languages form full-text
     1731       rich documents injected via ExtractingRequestHandler.
     1732       See more about langId at http://wiki.apache.org/solr/LanguageDetection
     1733    -->
     1734    <!--
     1735     <updateRequestProcessorChain name="langid">
     1736       <processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
     1737         <str name="langid.fl">text,title,subject,description</str>
     1738         <str name="langid.langField">language_s</str>
     1739         <str name="langid.fallback">en</str>
     1740       </processor>
     1741       <processor class="solr.LogUpdateProcessorFactory" />
     1742       <processor class="solr.RunUpdateProcessorFactory" />
     1743     </updateRequestProcessorChain>
     1744    -->
     1745
     1746  <!-- Script update processor
     1747
     1748    This example hooks in an update processor implemented using JavaScript.
     1749
     1750    See more about the script update processor at http://wiki.apache.org/solr/ScriptUpdateProcessor
     1751  -->
     1752  <!--
     1753    <updateRequestProcessorChain name="script">
     1754      <processor class="solr.StatelessScriptUpdateProcessorFactory">
     1755        <str name="script">update-script.js</str>
     1756        <lst name="params">
     1757          <str name="config_param">example config parameter</str>
     1758        </lst>
     1759      </processor>
     1760      <processor class="solr.RunUpdateProcessorFactory" />
     1761    </updateRequestProcessorChain>
     1762  -->
     1763 
    14541764  <!-- Response Writers
    14551765
     
    14751785     <queryResponseWriter name="php" class="solr.PHPResponseWriter"/>
    14761786     <queryResponseWriter name="phps" class="solr.PHPSerializedResponseWriter"/>
    1477      <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>
    14781787     <queryResponseWriter name="csv" class="solr.CSVResponseWriter"/>
    1479     -->
     1788     <queryResponseWriter name="schema.xml" class="solr.SchemaXmlResponseWriter"/>
     1789    -->
     1790
     1791  <queryResponseWriter name="json" class="solr.JSONResponseWriter">
     1792     <!-- For the purposes of the tutorial, JSON responses are written as
     1793      plain text so that they are easy to read in *any* browser.
     1794      If you expect a MIME type of "application/json" just remove this override.
     1795     -->
     1796    <str name="content-type">text/plain; charset=UTF-8</str>
     1797  </queryResponseWriter>
     1798 
    14801799  <!--
    14811800     Custom response writers can be declared as needed...
    14821801    -->
    1483   <!--
    1484      <queryResponseWriter name="custom" class="com.example.MyResponseWriter"/>
    1485     -->
     1802    <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" startup="lazy"/>
     1803 
    14861804
    14871805  <!-- XSLT response writer transforms the XML output by any xslt file found
     
    15181836                        class="com.mycompany.MyValueSourceParser" />
    15191837    -->
     1838   
     1839 
     1840  <!-- Document Transformers
     1841       http://wiki.apache.org/solr/DocTransformers
     1842    -->
     1843  <!--
     1844     Could be something like:
     1845     <transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
     1846       <int name="connection">jdbc://....</int>
     1847     </transformer>
     1848     
     1849     To add a constant value to all docs, use:
     1850     <transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
     1851       <int name="value">5</int>
     1852     </transformer>
     1853     
     1854     If you want the user to still be able to change it with _value:something_ use this:
     1855     <transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
     1856       <double name="defaultValue">5</double>
     1857     </transformer>
     1858
     1859      If you are using the QueryElevationComponent, you may wish to mark documents that get boosted.  The
     1860      EditorialMarkerFactory will do exactly that:
     1861     <transformer name="qecBooster" class="org.apache.solr.response.transform.EditorialMarkerFactory" />
     1862    -->
     1863   
    15201864
    15211865  <!-- Legacy config for the admin interface -->
    15221866  <admin>
    15231867    <defaultQuery>*:*</defaultQuery>
    1524 
    1525     <!-- configure a healthcheck file for servers behind a
    1526          loadbalancer
    1527       -->
    1528     <!--
    1529        <healthcheck type="file">server-enabled</healthcheck>
    1530       -->
    15311868  </admin>
    15321869
Note: See TracChangeset for help on using the changeset viewer.