Solr solrconfig.xml的翻译


SolrXMLluceneCache多线程 

                          solrconfig.xml
solrconfig.xml文件包含了大部分的参数用来配置Solr本身的。
dataDir parameter:<dataDir>/var/data/solr</dataDir>
用来指定一个替换原先在Solr目录下默认存放所有的索引数据,可以在Solr目录以外的任意目录中。如果复制使用后应该符合该参数。如果这个目录不是绝对路径的话,那么应该以当前的容器为相对路径。
mainIndex :
这个参数的值用来控制合并多个索引段。
<useCompoundFile>:通过将很多 Lucene 内部文件整合到单一一个文件来减少使用中的文件的数量。这可有助于减少 Solr 使用的文件句柄数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则false 的默认值应该就已经足够。
mergeFactor:
决定低水平的 Lucene 段被合并的频率。较小的值(最小为2)使用的内存较少但导致的索引时间也更慢。较大的值可使索引时间变快但会牺牲较多的内存。
maxBufferedDocs:
在合并内存中文档和创建新段之前,定义所需索引的最小文档数。段 是用来存储索引信息的 Lucene 文件。较大的值可使索引时间变快但会牺牲较多的内存。
maxMergeDocs:
控制可由 Solr ,000) 最适合于具有合并的Document 的最大数。较小的值 (< 10大量更新的应用程序。该参数不允许lucene在任何索引段里包含比这个值更多的文档,但是,多余的文档可以创建一个新的索引段进行替换。
maxFieldLength:
对于给定的 Document,控制可添加到 Field 的最大条目数,进而截断该文档。如果文档可能会很大,就需要增加这个数值。然而,若将这个值设置得过高会导致内存不足错误。
unlockOnStartup:
unlockOnStartup 告知 Solr 忽略在多线程环境中用来保护索引的锁定机制。在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新。将其设置为 true 可以禁用启动锁定,进而允许进行添加和更新。
<mainIndex>
    <!-- lucene options specific to the main on-disk luceneindex -->
    <useCompoundFile>false</useCompoundFile>
    <mergeFactor>10</mergeFactor>
    <maxBufferedDocs>1000</maxBufferedDocs>
    <maxMergeDocs>2147483647</maxMergeDocs>
    <maxFieldLength>10000</maxFieldLength>
  </mainIndex>

updateHandler:
这个更新处理器主要涉及底层的关于如何更新处理内部的信息。(此参数不能跟高层次的配置参数RequestHandlers对处理发自客户端的更新相混淆)。
<updateHandler class="solr.DirectUpdateHandler2">

    <!-- Limit the number of deletions Solr will bufferduring doc updating.
       
        Setting this lower can help boundmemory use during indexing.
    -->
缓冲更新这么多的数目,设置如下比较低的值,可以约束索引时候所用的内存
    <maxPendingDeletes>100000</maxPendingDeletes>
等待文档满足一定的标准后将自动提交,未来版本可以扩展现有的标准
    <!-- autocommit pending docs if certain criteria aremet.  Future versions may expand the available
     criteria -->
    <autoCommit> 
      <maxDocs>10000</maxDocs> <!--maximum uncommited docs before autocommit triggered -->
触发自动提交前最多可以等待提交的文档数量
      <maxTime>86000</maxTime> <!--maximum time (in MS) after adding a doc before an autocommit is triggered-->
在添加了一个文档之后,触发自动提交之前所最大的等待时间
    </autoCommit>

这个参数用来配置执行外部的命令。
一个postCommit的事件被触发当每一个提交之后
<listener event="postCommit"class="solr.RunExecutableListener">
      <strname="exe">snapshooter</str>
      <strname="dir">solr/bin</str>
      <boolname="wait">true</bool>
      <!--
      <arr name="args"><str>arg1</str> <str>arg2</str> </arr>
      <arr name="env"><str>MYVAR=val1</str> </arr>
        -->
    </listener>
exe--可执行的文件类型
dir--可以用该目录做为当前的工作目录。默认为"."
wait--调用线程要等到可执行的返回值
args--传递给程序的参数 默认nothing
env--环境变量的设置 默认nothing

<query>
    <!-- Maximum number of clauses in a boolean query... canaffect range
         or wildcard queries thatexpand to big boolean queries. 
一次布尔查询的最大数量,可以影响查询的范围或者进行通配符的查询,借此来扩展一个更强大的查询。
         An exception is thrown ifexceeded.
    -->
    <maxBooleanClauses>1024</maxBooleanClauses>

<query>:
控制跟查询相关的一切东东。

Caching:修改这个参数可以做为索引的增长和变化。

<!-- Cache used by SolrIndexSearcher for filters (DocSets),
         unordered sets of *all*documents that match a query.
在过滤器中过滤文档集合的时候,或者是一个无序的所有的文档集合中将在在SolrIndexSearcher中使用缓存来匹配符合查询的所有文档。
         When a new searcher is opened,its caches may be prepopulated
         or "autowarmed"using data from caches in the old searcher.
当一次搜索被打开,它可以自动的或者预先从旧的搜索中使用缓存数据。
         autowarmCount is the number ofitems to prepopulate.
autowarmCount这个值是预先设置的数值项。
  For LRUCache,
         the autowarmed items will bethe most recently accessed items.
在LRUCache中,这个autowarmed 项中保存的是最近访问的项。
       Parameters: 参数选项
         class - the SolrCacheimplementation (currently only LRUCache)实现SolrCache接口的类当前仅有LRUCache
           
         size - the maximum number ofentries in the cache
在cache中最大的上限值
         initialSize - the initialcapacity (number of entries) of
           the cache. (seel java.util.HashMap)
在cache中初始化的数量
         autowarmCount - the number ofentries to prepopulate from
           and old cache.
从旧的缓存中预先设置的项数。
         -->
    <filterCache
      class="solr.LRUCache"
      size="512"
      initialSize="512"
      autowarmCount="256"/>

   <!-- queryResultCache caches results of searches - orderedlists of
         document ids (DocList) basedon a query, a sort, and the range
         of documents requested. -->
查询结果缓存
    <queryResultCache
      class="solr.LRUCache"
      size="512"
      initialSize="512"
      autowarmCount="256"/>

  <!-- documentCache caches Lucene Document objects (the stored fieldsfor each document).
documentCache缓存Lucene的文档对象(存储领域的每一个文件)
       Since Lucene internal document ids aretransient, this cache will not be autowarmed.  -->
由于Lucene的内部文档ID标识(文档名称)是短暂的,所以这种缓存不会被自动warmed。
    <documentCache
      class="solr.LRUCache"
      size="512"
      initialSize="512"
      autowarmCount="0"/>

    <!-- Example of a generic cache. 
一个通用缓存的列子。
These caches may be accessed by name
         through SolrIndexSearcher.getCache().cacheLookup(),and cacheInsert().
这些缓存可以通过在SolrIndexSearcher.getCache().cacheLookup()和cacheInsert()中利用缓存名称访问得到。
         The purpose is to enable easycaching of user/application level data.
这样做的目的就是很方便的缓存用户级或应用程序级的数据。
         The regenerator argumentshould be specified as an implementation
         ofsolr.search.CacheRegenerator if autowarming is desired.  -->
这么做的的关键就是应该明确规定实现solr.search.CacheRegenerator接口如果autowarming是比较理想化的设置。
    <!--
    <cache name="myUserCache"
      class="solr.LRUCache"
      size="4096"
      initialSize="1024"
      autowarmCount="1024"
     regenerator="org.mycompany.mypackage.MyRegenerator"
      />
    -->

    <!-- An optimization that attempts to use a filter tosatisfy a search.
一种优化方式就是利用一个过滤器,以满足搜索需求。
         If the requested sort does notinclude a score,
如果请求的不是要求包括得分的类型,filterCache 这种过滤器将检查与过滤器相匹配的结果。如果找到,过滤器将被用来作为文档的来源识别码,并在这个基础上进行排序。
then the filterCache
         will be checked for a filtermatching the query.  If found, the filter
         will be used as the source ofdocument ids, and then the sort will be
         applied to that.
      -->
   <useFilterForSortedQuery>true</useFilterForSortedQuery>

    <!-- An optimization for use with thequeryResultCache.  When a search
         is requested, a superset ofthe requested number of document ids
         are collected.  Forexample, of a search for a particular query
         requests matching documents 10through 19, and queryWindowSize is 50,
         then documents 0 through 50will be collected and cached. Any further
         requests in that range can besatisfied via the cache.
    -->

一种优化用于queryResultCache,当一个搜索被请求,也会收集一定数量的文档ID做为一个超集。举个例子,一个特定的查询请求匹配的文档是10到19,此时,queryWindowSize是50,这样,文档从0到50都会被收集并缓存。这样,任何更多的在这个范围内的请求都会通过缓存来满足查询。
   <queryResultWindowSize>50</queryResultWindowSize>

    <!-- This entry enables an int hash representation forfilters (DocSets)
         when the number of items inthe set is less than maxSize. For smaller
         sets, this representation ismore memory efficient, more efficient to
         iterate over, and faster totake intersections.
     -->
    <HashDocSet maxSize="3000"loadFactor="0.75"/>


    <!-- boolToFilterOptimizer converts boolean clauses withzero boost
         cached filters if the numberof docs selected by the clause exceeds the
         threshold (represented as afraction of the total index)
    -->
    <boolTofilterOptimizer enabled="true"cacheSize="32" threshold=".05"/>

    <!-- Lazy field loading will attempt to read only partsof documents on disk that are
         requested.  Enablingshould be faster if you aren't retrieving all stored fields.
    -->
   <enableLazyFieldLoading>false</enableLazyFieldLoading>

  •  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值