知识点
相关文章
更多最近更新
更多[solr] solrconfig.xml
2019-03-27 01:06|来源: 网路
转自:http://yinwufeng.iteye.com/blog/964040
1、索引配置
mainIndex 标记段定义了控制Solr索引处理的一些因素.
-
useCompoundFile:通过将很多 Lucene 内部文件整合到单一一个文件来减少使用中的文件的数量。这可有助于减少 Solr 使用的文件句柄数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则
false
的默认值应该就已经足够。 - useCompoundFile:通过将很多Lucene内部文件整合到一个文件,来减少使用中的文件的数量。这可有助于减少Solr使用的文件句柄的数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则false的默认值应该就已经足够了。
- mergeFacor:决定Lucene段被合并的频率。较小的值(最小为2)使用的内存较少但导致的索引时间也更慢。较大的值可使索引时间变快但会牺牲较多的内存。(典型的 时间与空间 的平衡配置)
- maxBufferedDocs:在合并内存中文档和创建新段之前,定义所需索引的最小文档数。段 是用来存储索引信息的Lucene文件。较大的值可使索引时间变快但会牺牲较多内存。
- maxMergeDocs:控制可由Solr合并的 Document 的最大数。较小的值(<10,000)最适合于具有大量更新的应用程序。
- maxFieldLength:对于给定的Document,控制可添加到Field的最大条目数,进而阶段该文档。如果文档可能会很大,就需要增加这个数值。然后,若将这个值设置得过高会导致内存不足错误。
- unlockOnStartup:告知Solr忽略在多线程环境中用来保护索引的锁定机制。在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新。将其设置为true可以禁用启动索引,进而允许进行添加和更新。(锁机制)
2、查询处理配置
query标记段中以下一些与缓存无关的特性:
- maxBooleanClauses:定义可组合在一起形成以个查询的字句数量的上限。正常情况1024已经足够。如果应用程序大量使用了通配符或范围查询,增加这个限制将能避免当值超出时,抛出TooMangClausesException。
- enableLazyFieldLoading:如果应用程序只会检索Document上少数几个Field,那么可以将这个属性设置为 true。懒散加载的一个常见场景大都发生在应用程序返回一些列搜索结果的时候,用户常常会单击其中的一个来查看存储在此索引中的原始文档。初始的现实常 常只需要现实很短的一段信息。若是检索大型的Document,除非必需,否则就应该避免加载整个文档。
query部分负责定义与在Solr中发生的时间相关的几个选项:
概念:Solr(实际上是Lucene)使用称为Searcher的Java类来处理Query实例。Searcher将索引内容相关的数据加载到 内存中。根据索引、CPU已经可用内存的大小,这个过程可能需要较长的一段时间。要改进这一设计和显著提高性能,Solr引入了一张“温暖”策略,即把这 些新的Searcher联机以便为现场用户提供查询服务之前,先对它们进行“热身”。
- newSearcher和firstSearcher事件,可以使用这些事件来制定实例化新Searcher或第一个Searcher时,应该执 行哪些查询。如果应用程序期望请求某些特定的查询,那么在创建新Searcher或第一个Searcher时就应该反注释这些部分并执行适当的查询。
query中的智能缓存:
- filterCache:通过存储一个匹配给定查询的文档 id 的无序集,过滤器让 Solr 能够有效提高查询的性能。缓存这些过滤器意味着对Solr的重复调用可以导致结果集的快速查找。更常见的场景是缓存一个过滤器,然后再发起后续的精炼查 询,这种查询能使用过滤器来限制要搜索的文档数。
- queryResultCache:为查询、排序条件和所请求文档的数量缓存文档 id 的有序集合。
- documentCache:缓存Lucene Document,使用内部Lucene文档id(以便不与Solr唯一id相混淆)。由于Lucene的内部Document id 可以因索引操作而更改,这种缓存不能自热。
- Named caches:命名缓存是用户定义的缓存,可被 Solr定制插件 所使用。
其中filterCache、queryResultCache、Named caches(如果实现了org.apache.solr.search.CacheRegenerator)可以自热。
每个缓存声明都接受最多四个属性:
- class:是缓存实现的Java名
- size:是最大的条目数
- initialSize:是缓存的初始大小
- autoWarmCount:是取自旧缓存以预热新缓存的条目数。如果条目很多,就意味着缓存的hit会更多,只不过需要花更长的预热时间。
对于所有缓存模式而言,在设置缓存参数时,都有必要在内存、cpu和磁盘访问之间进行均衡。统计信息管理页(管理员界面的Statistics)对 于分析缓存的 hit-to-miss 比例以及微调缓存大小的统计数据都非常有用。而且,并非所有应用程序都会从缓存受益。实际上,一些应用程序反而会由于需要将某个永远也用不到的条目存储在 缓存中这一额外步骤而受到影响。
转自:http://www.cnblogs.com/mmllmm/articles/3033795
相关问答
更多-
Solr - 如何在solrconfig.xml中使用
标记的“dir”属性(Solr - How to use “dir” attribute of [2022-09-28]tag, in solrconfig.xml) 相对于solr instanceDir解析目录。 instanceDir是创建core.properties文件的地方。 它在instanceDir查找conf文件夹并创建data (索引数据)目录。 The directories are resolved relative to solr instanceDir. The instanceDir is place where it founds the core.properties file. It looks for a conf folder in ... -
我找到了问题的原因,似乎它只是Solr版本4.8.1中的一个错误,我升级到Solr 4.10.1现在它至少接受我的配置值,即使我仍然没有解决我的所有问题至少那个问题已经消失了。 I found the reason for the problem, seems like it was just a bug in Solr version 4.8.1, I upgraded to Solr 4.10.1 and now it at least accepts my config value, even tho ...
-
如何在solrconfig.xml中指定分片号/ zookeeper路径?(How can I specify shards number/zookeeper path in solrconfig.xml?)[2023-04-12]
您必须在[yourtomcatdir] /solr/solr.xml中执行此操作 - 在顶级节点(solr)的此文件中,您可以使用zkHost属性,在该属性中列出要连接的逗号分隔的zookeeper实例(host:port)获取核心配置。 You have to do this in [yourtomcatdir]/solr/solr.xml -- in this file at a top-level node (solr) you can have a zkHost attribute where yo ... -
似乎solrconfig.xml中的语句顺序可以有所不同。 在这种情况下,任何
声明必须在其中一个(或可能是全部)声明之后: , , , 和 。 最初,我的 行紧接在打开 标记之后。 这恰好是他们在我工作的例子中的位置。 所以也许Java只是不合适而且我的solrconfig.xml没有问题。 我希望这有助于 ... -
每次执行软件提交或硬提交时,您的缓存或多或少都会失效,因为任何类型的提交通常都会创建一个“newsearcher”。 你可能有一个softcommit或hardcommit设置为1分钟。 检查此链接并查看软提交和硬提交部分。 It turned out that this was not related to SolR at all but to internal routing. For those interested it turned out that ipv6 DNS was checked an ...
-
你是对的,这是目录 请看这里http://wiki.apache.org/solr/SolrInstall#Setup 您在某些时候需要编辑的2个文件是: 的solr / CONF / solrconfig.xml中 的solr / CONF / schema.xml中 您正在安装哪个操作系统? 如果它是窗户,那么我可以帮助你...因为我已经做了很多次;) CraftyFella You are correct that's the directory see here see here http://wi ...
-
我一直在查看HttpSolrServer上可用的方法和SolrJ库中SolrServer上的各种add方法,遗憾的是,我没有看到任何可以覆盖或在SolrJ中为updateHandler指定其他名称的地方。 它假定它可以通过http://HOST:PORT/solr/update I have been looking through the methods available on HttpSolrServer and the various add methods on SolrServer in the ...
-
我以不同的方式完成了它。 以下示例尝试包含database.dih.prod.cr9.xml如果它不存在或无法加载,则将使用database.dih.dev2.cr9.xml代替。 solrconfig.xml中
是否可以使用solrconfig.xml过滤Solr结果?(Is it possible to filter Solr results using solrconfig.xml?)[2022-04-08]
请求处理程序wiki页面显示了如何指定默认值:10 * ...solrconfig.xml中的solr.data.dir指向哪里?(Relatively where does solr.data.dir in solrconfig.xml points to?)[2021-09-24]
那么solr.data.dir指向哪里? dataDir参数用于指定存储所有索引数据的目录。 如果此目录不是绝对目录,则它相对于启动Solr的目录。 如果文件夹为空,则在启动Solr时将自动重新创建新索引。 究竟SOLR_HOME定义在哪里? 这实际上取决于所使用的操作系统和Web服务器。 它定义了Solr的主目录。 最常见的是它可以定义: 在启动文件中, 使用系统环境变量,例如: export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr/example ...