Наш индекс solr содержит ~ 10 000 000 документов. Мы делаем массовые обновления каждые 2 часа. После каждого массового обновления, когда новый поисковик разогревается, мы видим пик нашего времени отклика. Это связано с прогревом кеша Query Result, который занимает ~ 40 секунд, а это слишком много. Кроме того, коэффициент попадания в кэш результатов запроса очень мал, т.е. ~ 7%.
Наша конфигурация в solrconfig. xml выглядит следующим образом: -
Для нового поисковика: -
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst>
<str name="q">*:*</str>
...
...
</lst>
</arr>
</listener>
Для кэша результатов запроса: -
<queryResultCache class="solr.FastLRUCache"
size="10000"
initialSize="512"
autowarmCount="128"/>
Мы попытались настроить наш кэш результатов запроса, изменив кэш size
, initialSize
и autowarmCount
, но не получили сокращения во время прогрева (хотя коэффициент попадания немного увеличивается до ~ 9%).
Может кто-нибудь предложить способ сократить время прогрева кэша результатов запроса с такими конфигурациями?