按天构建索引,索引的模板是一样的,每天的数据量的大概一致,发现一个问题,每天新构建的索引查询速度都会比旧索引慢,有时甚至会到4s钟。
当时认为是写入数据影响,因为新索引会不断的写入数据,旧索引不会再写入数据,不过没办法验证。
通过profile查看,搜索分片的时间都是纳秒级的。
目前不知道是什么原因引起的,也不明白如何去调优,求助各位大佬~~~
经过调整后,发现是refresh的问题,原来是使用refresh的默认配置,后面将refresh调整到1m后,搜索的速度明显上来。不过这里还是不太明白,增大refresh不是可以提高写入速度和搜索的可见性吗?这里为什么会影响搜索速度?
当时认为是写入数据影响,因为新索引会不断的写入数据,旧索引不会再写入数据,不过没办法验证。
通过profile查看,搜索分片的时间都是纳秒级的。
目前不知道是什么原因引起的,也不明白如何去调优,求助各位大佬~~~
经过调整后,发现是refresh的问题,原来是使用refresh的默认配置,后面将refresh调整到1m后,搜索的速度明显上来。不过这里还是不太明白,增大refresh不是可以提高写入速度和搜索的可见性吗?这里为什么会影响搜索速度?
1 个回复
Charele - Cisco4321
赞同来自:
但和写入速度没有关系。
refresh动作和search一样,都得取得那个“外部ReferenceManager”的最新结果,
(即要进行lucene的flush,是lucene的)
一个在进行,另外一个就得等了。
将refresh调整到1m后,速度上来了,但你查到的就是1m之前的数据了,实时性就不高了。