У меня есть SOLR с 9 ядрами.
В одном из основных около 1 000 000 документов. (Размер ~ 1 ГБ)
После завершения фиксации в этом ядре 100 документов мои следующие 20-40 запросов ко всем другим ядрам в SOLR становятся очень медленными (от 3 до 8 секунд)
Я добавляю ~ 100 документов каждые 10 минут с помощью обработчика импорта данных, а затем фиксирую (без оптимизации) индекс.
- Есть ли способ сократить время выполнения запросов, выполняемых сразу после индексации?
- Может ли это быть аппаратной проблемой, учитывая, что все другие ядра выполняют запросы медленно, или проблема в том, что у меня много ядер.
У меня в среднем 20 запросов в секунду ко всем ядрам.
Я использую Jetty с SOLR
У меня есть mergeFactor = 10
<mergeFactor>10</mergeFactor>
Я установил счетчик автоматического подогрева для кэша
<filterCache
class="solr.FastLRUCache"
size="1048576"
initialSize="131072"
autowarmCount="943718"/>
<documentCache
class="solr.FastLRUCache" cleanupThread="true"
size="131072"
initialSize="117965"
autowarmCount="117965" />
У меня есть 50 запросов для автоматического разогрева нового поисковика, как для newSearcher, так и для firstSearcher.
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<str name="q">cake+boss</str><str name="facet">true</str><str name="facet.field">Category</str></lst>
...// 50 warm-up queries
</arr>
</listener>
//the same for firstSearcher