solr中Schema.xml和solrconfig.xml分析
一、字段配置(schema)
schema.xml位于solr/conf/目录下,类似于数据表配置文件,
定义了加入索引的数据的数据类型,主要包括type、fields和其他的一些缺省设置。
1、先来看下type节点,这里面定义FieldType子节点,包括name,class,positionIncrementGap等一些参数。
?
??<copyField?source="includes"?dest="text"?/>在添加索引时,将所有被拷贝field(如cat)中的数据拷贝到text field中
作用:
?<dynamicField?name="*_i"?type="int"?indexed="true"?stored="true"?/>
?如果一个field的名字没有匹配到,那么就会用动态field试图匹配定义的各种模式。
?<dynamicField?name="*"?type="ignored"?multiValued="true"?/>
如果通过上面的匹配都没找到,可以定义这个,然后定义个type,当String处理。(一般不会发生)
但若不定义,找不到匹配会报错。
?5、其他一些标签
?<uniqueKey>id</uniqueKey>
文档的唯一标识,?必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。
<defaultSearchField>text</defaultSearchField>
如果搜索参数中没有指定具体的field,那么这是默认的域。
<solrQueryParser?defaultOperator="OR"?/>
配置搜索参数短语间的逻辑,可以是"AND|OR"。
?
二、solrconfig.xml
?1、索引配置
?mainIndex 标记段定义了控制Solr索引处理的一些因素.
useCompoundFile:通过将很多 Lucene 内部文件整合到单一一个文件来减少使用中的文件的数量。这可有助于减少 Solr 使用的文件句柄数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则?false的默认值应该就已经足够。
?2、查询处理配置
?query标记段中以下一些与缓存无关的特性:
?query部分负责定义与在Solr中发生的时间相关的几个选项:
?概念:Solr(实际上是Lucene)使用称为Searcher的Java类来处理Query实例。Searcher将索引内容相关的数据加载到内存中。根据索引、CPU已经可用内存的大小,这个过程可能需要较长的一段时间。要改进这一设计和显著提高性能,Solr引入了一张“温暖”策略,即把这些新的Searcher联机以便为现场用户提供查询服务之前,先对它们进行“热身”。
?query中的智能缓存:
其中filterCache、queryResultCache、Named caches(如果实现了org.apache.solr.search.CacheRegenerator)可以自热。
每个缓存声明都接受最多四个属性:
对于所有缓存模式而言,在设置缓存参数时,都有必要在内存、cpu和磁盘访问之间进行均衡。统计信息管理页(管理员界面的Statistics)对于分析缓存的 hit-to-miss 比例以及微调缓存大小的统计数据都非常有用。而且,并非所有应用程序都会从缓存受益。实际上,一些应用程序反而会由于需要将某个永远也用不到的条目存储在缓存中这一额外步骤而受到影响。
?
转载自:http://blog.csdn.net/escaflone/article/details/5726320