solr调优

来源:互联网 发布:js冒泡排序法代码 编辑:程序博客网 时间:2024/06/06 18:49

http://blog.163.com/kivvf@126/blog/static/102516320084142011892

Solr调优

 

Schema设计的思考

索引字段的数量(Indexed Fields)

索引字段会增加如下开销:

1.       建立索引时的内存使用率

2.       Segment合并时间

3.       索引优化时间

4.       索引大小

在这些字段上面加上omitNorms=”true”可减轻这些症状。

 

存储字段(Stored Fields)

获取查询结果的存取字段是个明显的开销。每个文档所存储的字节数决定了这个开销的大小。文档存储的字节数越大,文档就会更加稀疏的分部在磁盘里,导致更多的IO读写。尤其是那些大的存储字段。

需要考虑把大的存储字段,存储在Solr之外。如果你非的存储它,就考虑把它做成压缩字段。但这会增加CPU的消耗,而减少IO的负担。

如果你不是每次都要用到所有字段,那就考虑把有些字段设成lazy字段,特别是使用压缩字段的时候。

 

Solr配置文件的思考

mergeFactor

mergeFactor参数粗略的决定了segment的数量。

mergeFactor告诉Lucene在合并到一个单一的segment之前,多少个同样大小的segment可以build

mergeFactor的选择

大的mergeFactor

优点:提高索引建立的速度

缺点:merge频率下降,结果是index文件增多,searching变慢

小的mergeFactor

优点:index文件少,提高searching速度

缺点:merge频率增加,建立索引较慢

 

HashDocSet Max Size参数的考虑

hashDocSet参数用于优化filter。较小的set,内存效率更高,遍历更快,交叉更快。

此参数和实际文档数量有关系:

1.       计算0.005总的文档数量

2.       上下的尝试来获取最佳的查询时间

3.       当高的值和低的值,导致系统的性能变化不大时,选择较高的值。

 

Cache

Cache命中率

利用SolrAdmin检测cache的统计。提高cache的大小是个好方法。注意filterCachefacetting要用到filterCache

 

排序字段的Explicit Warming

如果你有很多的给予排序的field,添加显式warming 查询到newSearcherfirstSearcher的事件监听器。在用户查询之前,可以填充FieldCache

0 0
原创粉丝点击