solrconfig.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?><config>
<!-- 在下面的所有配置中,前缀"solr"。 为类名
是一个别名,导致solr搜索适当的包,
包括org.apache.solr。(search | update | request | core | analysis)
如果你也可以指定一个完全限定的Java类名
有自己的定制插件。
-->
<luceneMatchVersion>5.1.0</luceneMatchVersion>
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
<dataDir>${solr.data.dir:}</dataDir>
<!-- DirectoryFactory用于索引。
solr.StandardDirectoryFactory是文件系统
并尝试挑选当前的最佳实现
JVM和平台。 solr.NRTCachingDirectoryFactory,默认,
包装solr.StandardDirectoryFactory并将小文件缓存在内存中
为了更好的NRT性能。
可以通过solr.MMapDirectoryFactory强制实现特定的实现,
solr.NIOFSDirectoryFactory或solr.SimpleFSDirectoryFactory。
solr.RAMDirectoryFactory是基于内存的,而不是
持久性,并且不能与复制配合使用。
-->
<directoryFactory name="DirectoryFactory"
>
<!-- 如果您使用的是solr.HdfsDirectoryFactory,
否则会被忽略。 如果您不打算使用hdfs,
您可以安全地删除此部分 -->
<str name="solr.hdfs.home">${solr.hdfs.home:}</str>
<str name="solr.hdfs.confdir">${solr.hdfs.confdir:}</str>
<str name="solr.hdfs.blockcache.enabled">${solr.hdfs.blockcache.enabled:true}</str>
<str name="solr.hdfs.blockcache.global">${solr.hdfs.blockcache.global:true}</str>
</directoryFactory>
<codecFactory/>
<schemaFactory/>
<indexConfig>
<lockType>${solr.lock.type:native}</lockType>
<infoStream>true</infoStream>
</indexConfig>
<!-- JMX
此示例可在JMX中启用并且仅当现有的MBeanServer
如果要通过JVM配置JMX,请使用此选项
参数。 删除它以禁用暴露Solr配置并向JMX统计。
-->
<jmx />
<updateHandler>
<!-- 启用事务日志,用于实时获取,持久性和
和solr云复制恢复。 日志可以增长
未提交的索引更改,所以使用硬性的autoCommit被推荐(见下文)。
"dir" - 事务日志的目标目录,默认为
solr数据目录。-->
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
<!-- AutoCommit
在特定条件下自动执行强制提交。 而不是启用autoCommit,请考虑在添加文档时使用"commitWithin"。
http://wiki.apache.org/solr/UpdateXmlMessages
maxDocs - 自动触发新提交之前自上次提交以来要添加的最大文档数。
maxTime - 在自动触发新提交之前自添加文档以来允许通过的最大时间(以ms为单位)。
openSearcher - 如果为false,则提交将导致最近的索引更改被刷新到稳定存储,但不会导致新的搜索器被打开以使这些更改可见。
如果启用了updateLog,那么强烈建议您使用某种类型的autoCommit来限制日志大小。
-->
<autoCommit>
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<!--softAutoCommit就像autoCommit,除了它导致一个"软"提交,
只能确保更改是可见的,但不能确保数据被同步到磁盘。 这比一个艰难的承诺更快,更接近实时友好。
-->
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
</updateHandler>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查询部分 - 这些设置控制查询时间,如缓存
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<query>
<maxBooleanClauses>1024</maxBooleanClauses>
<!--
Solr内部查询缓存,基于同步的LinkedHashMap和基于ConcurrentHashMap的FastLRUCache,
有两种可用于Solr,LRUCache的缓存实现。
FastLRUCache在单线程操作中具有更快的获取速度和更慢的速度,因此当缓存的命中率高(> 75%)时,通常快于LRUCache,并且在多CPU系统的其他情况下可能会更快。
-->
<!-- Filter Cache
过滤器缓存
参数:
class - SolrCache实现LRUCache或(LRUCache或FastLRUCache)
size - 缓存中最大条目数
initialSize - 缓存的初始容量(条目数)。 (参见java.util.HashMap)
autowarmCount - 预填充和旧缓存的条目数。
-->
<filterCache
> initialSize="512"
autowarmCount="0"/>
<!-- 查询结果缓存
缓存搜索结果 - 基于查询,排序和请求的文档范围的文档ID(DocList)的有序列表。
-->
<queryResultCache
> initialSize="512"
autowarmCount="0"/>
<!-- 文档缓存
缓存Lucene Document对象(每个文档的存储字段)。 由于Lucene内部文档id是短暂的,
此缓存不会被自动加热。
-->
<documentCache
> initialSize="512"
autowarmCount="0"/>
<!-- custom cache currently used by block join -->
<cache name="perSegFilter"
> initialSize="0"
autowarmCount="10"
regenerator="solr.NoOpRegenerator" />
<!-- 字段懒加载
如果为true,那么未请求的存储字段将被懒惰地加载。
如果通常的情况是不加载所有存储的字段,
则这可以导致显着的速度改善,特别是如果跳过的字段是大的压缩文本字段。
-->
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<!--结果窗口大小
与queryResultCache一起使用的优化。 当请求搜索时,请求所需数量的文档ID的超集
被收集。 例如,如果搜索特定查询请求匹配文档10到19,并且queryWindowSize为50,
那么文件0到49将被收集和缓存。 通过缓存可以满足该范围内的任何其他请求。
-->
<queryResultWindowSize>20</queryResultWindowSize>
<!-- queryResultCache中任何条目缓存的最大文档数。
-->
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
<!-- 查询相关事件侦听器
各种IndexSearcher相关事件可以触发侦听器采取行动。
newSearcher - 每当新的搜索者正在准备中,并且有一个当前的搜索者处理请求(也称为注册)时就被触发。 它可以用于提示某些缓存,以防止某些请求的长时间请求。
firstSearcher - 每当一个新的搜索者准备好,但没有当前注册的搜索者来处理请求或从中获取自动加密数据时,它们就被触发。
-->
<!-- QuerySenderListener接受NamedList数组,并按顺序对每个NamedList执行本地查询请求。
-->
<listener event="newSearcher">
<arr name="queries">
<!--
<lst><str name="q">solr</str><str name="sort">price asc</str></lst>
<lst><str name="q">rocks</str><str name="sort">weight asc</str></lst>
-->
</arr>
</listener>
<listener event="firstSearcher">
<arr name="queries">
<lst>
<str name="q">static firstSearcher warming in solrconfig.xml</str>
</lst>
</arr>
</listener>
<!-- 使用冷搜索器
如果搜索请求进入并且没有当前注册的搜索者,则立即注册仍然变暖的搜索者并使用它。 如果"false",则所有请求将被阻塞,直到第一个搜索者完成加温。
-->
<useColdSearcher>false</useColdSearcher>
<!--
最大预热搜索器
可能在后台同时预热的搜索者的最大数量。 如果超出此限制,则返回错误。
推荐值为1-2for read-only slaves
-->
<maxWarmingSearchers>2</maxWarmingSearchers>
</query>
<!-- 请求调度器
requestDispatcher将请求分发给相应的请求处理器
本节包含有关SolrDispatchFilter在处理此SolrCore请求时应如何运行的说明。
handleSelecttrue"是为了向旧版本兼容 不必考虑
为了向后兼容
-->
<requestDispatcher handleSelect="false" >
<!-- Request Parsing
设置请求的http表单的一些限制大小等配置
-->
<requestParsers enableRemoteStreaming="true"
multipartUploadLimitInKB="2048000"
formdataUploadLimitInKB="2048"
addHttpRequestToContext="false"/>
<httpCaching never304="true" />
</requestDispatcher>
<!-- 请求处理器
http://wiki.apache.org/solr/SolrRequestHandler
传入的查询将根据请求中指定的路径以名称的形式发送到特定的请求处理器
-->
<requestHandler name="/dataimport">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
<requestHandler name="/select">
<!--
默认值 其中df为默认查询字段
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>
<!--
追加
-->
<!--
<lst name="appends">
<str name="fq">inStock:true</str>
</lst>
-->
<!--
重写
-->
<!--
<lst name="invariants">
<str name="facet.field">cat</str>
<str name="facet.field">manu_exact</str>
<str name="facet.query">price:[* TO 500]</str>
<str name="facet.query">price:</str>
</lst>
-->
<!--
如果不希望使用SearchComponent的默认列表,则该列表可以被完全覆盖,也可以将组件添加到默认列表中。 (见下文)
<!--
<arr name="components">
<str>nameOfCustomComponent1</str>
<str>nameOfCustomComponent2</str>
</arr>
-->
</requestHandler>
<requestHandler name="/query">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="wt">json</str>
<str name="indent">true</str>
<str name="df">text</str>
</lst>
</requestHandler>
<requestHandler name="/get">
<lst name="defaults">
<str name="omitHeader">true</str>
<str name="wt">json</str>
<str name="indent">true</str>
</lst>
</requestHandler>
<requestHandler name="/browse">
<lst name="defaults">
<str name="echoParams">explicit</str>
<!-- VelocityResponseWriter settings -->
<str name="wt">velocity</str>
<str name="v.template">browse</str>
<str name="v.layout">layout</str>
<!-- Query settings -->
<str name="defType">edismax</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
<!--> <str name="facet">on</str>
<str name="facet.mincount">1</str>
</lst>
</requestHandler>
<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse">
<lst name="defaults">
<str name="df">text</str>
</lst>
</initParams>
<requestHandler name="/update">
</requestHandler>
<!-- Solr Cell Update Request Handler
http://wiki.apache.org/solr/ExtractingRequestHandler
-->
<requestHandler name="/update/extract"
startup="lazy"
>
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>
<requestHandler name="/analysis/field"
startup="lazy"
/>
<requestHandler name="/analysis/document"
startup="lazy" />
<requestHandler name="/admin/"
/>
<requestHandler name="/admin/ping">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
</requestHandler>
<!-- Echo the request contents back to the client -->
<requestHandler name="/debug/dump" >
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="echoHandler">true</str>
</lst>
</requestHandler>
<requestHandler name="/replication" >
</requestHandler>
<!-- 搜索组件
搜索组件已注册到SolrCore并由其使用
SearchHandler的实例(可以通过名称访问它们)
默认情况下,以下组件可用:
<searchComponent name ="query"class ="solr.QueryComponent"/>
<searchComponent name ="facet"class ="solr.FacetComponent"/>
<searchComponent name ="mlt"class ="solr.MoreLikeThisComponent"/>
<searchComponent name ="highlight"class ="solr.HighlightComponent"/>
<searchComponent name ="stats"class ="solr.StatsComponent"/>
<searchComponent name ="debug"class ="solr.DebugComponent"/>
requestHandler中的默认配置如下所示:
<arr name="components">
<str>query</str>
<str>facet</str>
<str>mlt</str>
<str>highlight</str>
<str>stats</str>
<str>debug</str>
</arr>
如果您将searchComponent注册到其中一个标准名称,
这将被使用而不是默认值。
要在"标准"组件之前或之后插入组件,请使用:
<arr name ="first-components">
<STR> myFirstComponentName </ STR>
</ ARR>
<arr name ="last-components">
<STR> myLastComponentName </ STR>
</ ARR>
注意:使用名称"debug"注册的组件将会
总是在"最后的组件"之后执行
-->
</config>
页:
[1]