2013-11-22 3 views
0

Описание (для справки):Найти кратчайшее время индексации в Solr

Я хочу индексировать весь диск файлов: ~ 2TB

Я получаю список файлов (с помощью библиотеки Коммонс ИО).

После того, как у меня есть список файлов, я иду через каждый файл и извлечь считываемые данные, что при использовании Apache Тик

После того, как у меня есть данные, я индексация его с помощью Solr.

Я использую solrj с приложением Java

Мой вопрос: Как решить, какой размер сбора для передачи Solr. Я пробовал передавать разные размеры с разными результатами, т. Е. Иногда 150 документов на коллекцию выполняют более 100 документов, но иногда они этого не делают. Является ли их оптимальным способом/конфигурацией, которую вы можете настроить, поскольку этот процесс необходимо выполнять повторно.

Осложнения:

1) Файлы хранятся на сетевом диске, извлекая имена файлов/файлов занимает некоторое время тоже.

2) И эта программа (Java приложение) и Solr себе не может использовать более чем 512 Мб оперативной памяти

ответ

0

Назову только несколько параметров некоторых из них, которые могут повлиять на скорость индексации. Обычно вам нужно поэкспериментировать со своим оборудованием, оперативной памятью, сложностью обработки данных и т. Д., Чтобы найти лучшую комбинацию, т. Е. Нет единственной серебряной пули для всех.

  1. Увеличить количество сегментов при индексировании на некоторое количество. Скажем, 10k. Это позволит убедиться, что слияние сегментов произойдет не так часто, как это было бы с числом сегментов по умолчанию 10. Слияние сегментов во время индексации способствует замедлению индексации. Вам нужно будет объединить сегменты после завершения индексации для вашей поисковой системы. Также уменьшите количество сегментов назад до чего-то разумного, например 10.

  2. Уменьшите регистрацию на своем контейнере во время индексации. Это можно сделать с помощью пользовательского интерфейса solr admin. Это ускоряет процесс индексирования.

  3. Либо уменьшите частоту автоматических коммитов, либо выключите их, и выполните контроль за собой.

  4. Удалить запросы на прогрев для индексации большого объема, не автокопировать записи кэша.

  5. Использование ConcurrentUpdateSolrServer и использование SolrCloud, а затем CloudSolrServer.

0

Прокомментировать автообложение и tlogs и индекс на одном ядре. используйте многопоточность в вашем solrj api (количество потоков = нет cpu * 2), чтобы попасть в одно ядро.

рассматривает

Раджат

Смежные вопросы