昨天再一次看 lucene 2.4 的新特性的时候,发现有一个TimeLimitedCollector东西,看类名也就知其什么功能了。
目前用的solr都没有设置超时,所以压力比较大的时候查询会越来越慢,也就越积越多,最终可能让 solr 挂了。总是想要个 timeout 功能,可能会对解决此问题有一定帮助。之前看lucene 2.4新特性时,没太注意。昨日注意到了,就要试一下。
solr 1.3 用的是 lucene 2.4 dev 版,还要看下 solr 有没有使用这特性。搜索源码发现 solr 1.3 有使用这个新特性。太好了,不用 hack了。
慢慢发现,solr 1.3 有这样的请求参数来设置超时,timeAllowed 在 CommonParams.TIME_ALLOWED 定义。单位为ms,可以用如timeAllowed=1000来使它可以有查询超时功能。
当然也可以把它加到 standard requestHandler 的默认参数中。
默认最小超时为 20ms,试了下,当超时时会有log,但有时候还是觉得没有达到目的,有待观察与实践