Solr高亮优化
0729进展:
删除了一些无用的过滤器,并打开httpcaching缓存。
目前压测开20个线程(静态参数)1分钟,错误率约0.3%左右。
20个线程(动态参数)1分钟,错误率约3.68%左右。
后续优化方向:
- solr内存回收策略方面调整;
- solr查询优化参数调优;
- 查看高亮其他过滤器;
PS:目前效率这么差,主要是因为高亮。因为使用高亮查询时,相当于在查询时重新索引,不会用之前构建的索引,所以比较消耗资源,也比较慢。
0730进展:
- 删除了查询逻辑中无用的字段
- 调整solr的jvm新生代内存分配,减少gc的次数
- 调整tomcat线程池
这些调整都没什么较好的效果,目前效果:
压测开20个线程(静态参数)1分钟,错误率0.1%左右。
压测开20个线程(静态参数)1分钟,错误率25%左右。
(昨天solr内部只有2w条数据,今天solr中有22w条数据)
明天的方向:
再查些资料看看(这方面资料不多)
0731进展:
- 高亮组件改为FastVectorHighlighter
- 重新调整solr的jvm新生代内存分配
- 将solr中的collection改为2个分片
效果:
因为改了分片,目前在重建索引,solr中的数据5w左右
压测开20个线程(动态参数)1分钟,错误率0.03%左右。
压测开50个线程(动态参数)1分钟,错误率10%左右。(前50秒在0.02%,后10秒错误率突增,主要是因为由于压测的电脑线程跑满,无法创建新线程报的错)
优化成这样就差不多了吧
这几天做了如下优化:
- 调整全局搜索应用代码,删除不需要的查询字段和高亮字段;
- 将高亮字段类型改为持久化,可以持久化高亮字段的索引;
- 删除高亮字段所属的类型字段的过滤器(主要是同义词和停用词,我看了对应的文本文件,只有2条内容,应该是搭建solr时从别的地方拷贝过来的)
- 优化启动solr时jvm的内存分配
- 默认高亮组件效率较低,改为FastVectorHighter高亮组件
- 之前uat环境数据只有1个分片,现在改为了2个分片
- 调整了solr的配置,打开了httpcaching缓存