Solr高亮优化

0729进展:
删除了一些无用的过滤器,并打开httpcaching缓存。
目前压测开20个线程(静态参数)1分钟,错误率约0.3%左右。
20个线程(动态参数)1分钟,错误率约3.68%左右。
后续优化方向:

  1. solr内存回收策略方面调整;
  2. solr查询优化参数调优;
  3. 查看高亮其他过滤器;

PS:目前效率这么差,主要是因为高亮。因为使用高亮查询时,相当于在查询时重新索引,不会用之前构建的索引,所以比较消耗资源,也比较慢。

0730进展:

  1. 删除了查询逻辑中无用的字段
  2. 调整solr的jvm新生代内存分配,减少gc的次数
  3. 调整tomcat线程池
    这些调整都没什么较好的效果,目前效果:
    压测开20个线程(静态参数)1分钟,错误率0.1%左右。
    压测开20个线程(静态参数)1分钟,错误率25%左右。
    (昨天solr内部只有2w条数据,今天solr中有22w条数据)

明天的方向:
再查些资料看看(这方面资料不多)

0731进展:

  1. 高亮组件改为FastVectorHighlighter
  2. 重新调整solr的jvm新生代内存分配
  3. 将solr中的collection改为2个分片
    效果:
    因为改了分片,目前在重建索引,solr中的数据5w左右
    压测开20个线程(动态参数)1分钟,错误率0.03%左右。
    压测开50个线程(动态参数)1分钟,错误率10%左右。(前50秒在0.02%,后10秒错误率突增,主要是因为由于压测的电脑线程跑满,无法创建新线程报的错)

优化成这样就差不多了吧

这几天做了如下优化:

  1. 调整全局搜索应用代码,删除不需要的查询字段和高亮字段;
  2. 将高亮字段类型改为持久化,可以持久化高亮字段的索引;
  3. 删除高亮字段所属的类型字段的过滤器(主要是同义词和停用词,我看了对应的文本文件,只有2条内容,应该是搭建solr时从别的地方拷贝过来的)
  4. 优化启动solr时jvm的内存分配
  5. 默认高亮组件效率较低,改为FastVectorHighter高亮组件
  6. 之前uat环境数据只有1个分片,现在改为了2个分片
  7. 调整了solr的配置,打开了httpcaching缓存