Iam пытается индексировать документы в solrj. iam, используя Solr4.5, и у меня есть огромные файлы для индексирования. каковы способы индексирования каждого файла, чтобы избежать узких мест в производительности.Добавление огромного количества файлов в Solr
ответ
Первое, что нужно проверить, является журнал на стороне сервера и искать сообщения о фиксаций. Возможно, вы выполняете жесткую фиксацию после разбора каждого файла. Это дорого. Вы можете изучить мягкие коммиты или commitWithin params, чтобы файлы отображались чуть позже.
Во-вторых, вы, кажется, отправляете запрос на Solr для извлечения вашего файла и запускаете его на Tika. Таким образом, это, вероятно, перезапускает Tika внутри Solr каждый раз. Вы не сможете делать это, как могут показаться другие ответы.
Но вы можете запустить Tika локально в своем клиенте и инициализировать его один раз и сохранить его. Тогда это дает больше гибкости в том, как создать свой SolrInputDocument, который вы затем можете выполнить.
как побегать tike экстракт внешне. Я думал, что solrj заботится об этом. – user3161879
Если я правильно понимаю ваш код, вы отправляете этот запрос для извлечения обработчика. Это означает, что сервер Solr * работает под управлением Tika. Вместо этого вы можете просто создать экземпляр Tika в своем Java-процессе и запустить его самостоятельно. Вы потеряете некоторые функции отображения полей Solr, но я подозреваю, что вы еще не используете его. –
Да, попробуй свое предложение и проверьте. Но еще одна вещь, когда iam пытается индексировать несколько документов один за другим, он индексирует 100 000 записей успешно, а затем сохраняет файлы, которые он запускает, говоря Server по адресу http: // имя_сервера/solr/возвращенный статус не в порядке: 500, сообщение: Внутренняя ошибка сервера. Что может быть причиной? – user3161879
Обновление для каждого документа происходит медленно с помощью solr.
Вы намного лучше добавили все документы, а затем совершили фиксацию с обновлением. Взятые из Solr вики:
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
UpdateRequest req = new UpdateRequest();
req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
req.add(docs);
UpdateResponse rsp = req.process(server);
Iam, получая каждый документ, который нужно индексировать, от разбора другого файла по строкам. Поэтому у меня нет коллекции документов как таковых. У меня есть один файл за раз. Так я должен добавлять файлы в эту коллекцию каждый цикл i? а затем вызвать этот запрос на обновление для этой коллекции? – user3161879
@ user3161879 Да, добавьте их в коллекцию, и когда вы закончите, сделайте запрос на обновление с помощью коллекции. –
Я изменил код и iam передал документ коллекции на сервер solr. Но в каждом документе внутри явно установлен идентификатор. Но solr бросает мне исключение, поскольку в документе отсутствует обязательное уникальное поле Key: id. что еще нужно сделать. – user3161879
- 1. Добавление огромного количества элементов в Listview
- 2. Чтение огромного количества json-файлов в Python?
- 3. Хранение огромного количества файлов в приложении Bundle
- 4. Смещение огромного количества - сборка
- 5. Метод создания огромного количества
- 6. Обработка огромного количества записей
- 7. Конденсация огромного количества?
- 8. Solr + DIH + Tika: индексирование огромного количества файлов, как обрабатывать удаленные файлы?
- 9. SQL Server - экспорт огромного количества записей в несколько файлов csv
- 10. Конкатенация огромного количества выборочных файлов из каталога в оболочке
- 11. Windows Azure Cloud Storage - влияние огромного количества файлов в корне
- 12. Клиент OpenStack Swift для быстрой синхронизации огромного количества файлов?
- 13. Обработка огромного количества подключения MySQL
- 14. Обновление огромного количества сайтов Joomla
- 15. Обнаружение столкновений огромного количества кругов
- 16. Предварительная загрузка огромного количества изображений
- 17. Использование ssh, что является лучшим способом загрузки огромного количества файлов
- 18. Миграция огромного количества данных в SQL
- 19. Добавление большего количества файлов в ClearCase
- 20. Обработка огромного количества полей в модели scalatra
- 21. Запись огромного количества текста в текстовое поле
- 22. Построение огромного количества строк в R
- 23. Выполнение огромного количества HTTP-запросов в Python
- 24. Обработка огромного количества отношений в парсе
- 25. Удаление огромного количества узлов в drupal
- 26. Выполнение огромного количества запросов с фасетными датами в SOLR в распределенной форме
- 27. Увеличение количества сегментов в Solr
- 28. Лучший подход к хранению огромного количества данных
- 29. Структура данных для хранения огромного количества данных?
- 30. Python: Сериализация/де-сериализация огромного количества данных
Как долго мы говорим? Вам нужно только индексировать эти файлы один раз. –
@Bartlomiej Lewandowski: его индексирование 35 000 записей за 1 час. Таким образом, итоговые записи 700 000 записей я должен ждать отдыха. . Да, я должен индексировать эти файлы один раз. Но iam вызывает запрос solr update для каждого файла. – user3161879