Производительность полного импорта Solr

У меня есть небольшой набор запросов и сущностей, и хотя производительность довольно плохая, я просто хотел бы знать, какие трюки и конфигурации я могу сделать, чтобы повысить производительность?

Обратите внимание, что я использую Solr 4.1.


person Hilmi    schedule 27.03.2013    source источник
comment
Сколько у вас документов? И какие запросы вы выполняете?   -  person Jesvin Jose    schedule 27.03.2013
comment
Запросы Mongo, около 550 тыс.   -  person Hilmi    schedule 27.03.2013


Ответы (1)


Вы должны попытаться свести к минимуму количество коммитов во время импорта. Даже если вы не выполняете фиксацию периодически при добавлении документов в Solr, Solr выполнит автоматическую фиксацию на основе настроек автоматической фиксации solrconfig.xml:

<autoCommit>
   <maxDocs>10000</maxDocs>
   <maxTime>15000</maxTime>
   <openSearcher>false</openSearcher>
</autoCommit>

Увеличьте maxDocs и maxTime и посмотрите, улучшится ли скорость. (maxTime указывается в миллисекундах, поэтому значение по умолчанию составляет всего 15 секунд, что очень мало для массового импорта.)

Вы даже можете попробовать отключить автоматическую фиксацию во время массового импорта и выполнить одну команду фиксации после добавления всех ваших документов. Если это не приведет к исключению нехватки памяти от Solr, это лучшая скорость, которую вы можете получить.

Если бы вы выполняли импорт РСУБД, то я бы предложил захватить как можно больше полей с помощью JOIN и минимизировать количество подсущностей, поскольку каждая подсущность открывает отдельное соединение с БД. Поскольку вы импортируете из монго, это к вам не относится. Вы можете поэкспериментировать, создав новую коллекцию mongo со всеми данными, которые вам нужны для Solr, сохранить один объект в вашем средстве импорта данных и посмотреть, улучшит ли это скорость импорта.

person arun    schedule 30.03.2013
comment
Поможет ли это увеличить количество потоков? Размер кучи SOLR? Моя версия 6.3 - person Yury Bondarau; 07.01.2017