У меня проблема при создании моего индекса Solr (Lucene и Solr 3.4.0 на Apache Tomcat 6.0.33).
Данные для индексируемых документов поступают из базы данных Oracle. Поскольку мне приходится обрабатывать множество CLOB, я разделил импорт данных на несколько обработчиков запросов, чтобы повысить производительность при извлечении данных из базы данных (многопоточное моделирование). Эти requestHandler настроены в моем solrconfig.xml следующим образом:
<requestHandler name="/segment-#" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">segment-#.xml</str>
</lst>
</requestHandler>
Чтобы построить индекс, я запускаю первый DataImportHandler с параметром clean = true, а затем начинаю полный импорт всех остальных сегментов. Когда все сегменты пройдены, страницы состояния (http://host/solr/segment-#) сообщают мне, что для каждого сегмента было получено и обработано правильное количество строк (в соответствии с оператором SELECT COUNT (*) в базе данных). Пока все в порядке.
Но если я сейчас вызову страницу состояния ядра (http://host/solr/admin/core ) numDocs не является суммой всех сегментов. Всегда отсутствуют какие-то документы. Я несколько раз пробовал построить индекс, разница всегда была разная. В сумме в указателе должно быть 8,3 миллиона документов, но на самом деле всегда отсутствуют около 100 000 записей. NumDocs - это тот же номер, который я могу найти с помощью *:*
запроса через интерфейс администратора Solr.
Я включил информационный поток, посмотрел записи журнала, а также журналы Tomcat, но не нашел подсказки. Что я делаю неправильно?
Я использую 17 обработчиков запросов, и мои ‹indexDefaults› настроены следующим образом:
<useCompoundFile>false</useCompoundFile>
<mergeFactor>17</mergeFactor>
<ramBufferSizeMB>32</ramBufferSizeMB>
<maxBufferedDocs>50000</maxBufferedDocs>
<maxFieldLength>2000000</maxFieldLength>
<writeLockTimeout>1000</writeLockTimeout>
<commitLockTimeout>10000</commitLockTimeout>
<lockType>native</lockType>
Помощь очень ценится. Заранее большое спасибо!