Импорт данных Solr из индекса mdb только первых 10 записей

У меня есть файл базы данных mdb, и я пытаюсь импортировать его в Solr. Файл базы данных содержит более 6000 записей, но в Solr он индексирует только 10 записей:

Индексация завершена. Добавлено/обновлено: 10 документов. Удалено 0 документов. (Продолжительность: 03 с)

Вывод журнала — это просто только предупреждения:

9/26/2014 4:36:52 PM
WARN
ManagedResource
No stored data found for /rest/managed
9/26/2014 4:36:52 PM
WARN
ManagedResource
No stored data found for /rest/managed
9/26/2014 4:36:52 PM
WARN
ManagedResource
No registered observers for /rest/managed
9/26/2014 4:36:52 PM
WARN
ManagedResource
No registered observers for /rest/managed
9/26/2014 4:37:07 PM
WARN
Index
unsupported collating sort order SortOrder[1025(0)] for text index,​ making read-only
9/26/2014 4:37:08 PM
WARN
Index
unsupported collating sort order SortOrder[1025(0)] for text index,​ making read-only
9/26/2014 4:37:10 PM
WARN
Index
unsupported data type BINARY for index,​ making read-only

Я использую следующее в solrconfig.xml:

<requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">C:\solr-4.9.0\example\solr\fox\conf\data-config.xml</str>
    </lst>
  </requestHandler>

А это в data-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://C:/feqh/main.mdb;memory=false" />

<document>
    <entity name="Book" 
            query="select bkid AS id, bkid AS BookID,bk AS BookTitle from 0bok">
       <field column="id" name="id"/>
       <field column="BookID" name="BookID"/>
       <field column="BookTitle" name="BookTitle"/>
    </entity>
  </document>
</dataConfig>

Я использую драйвер UCanAccess, потому что у меня Java8, а драйвер jdbc-odbc не поддерживается (sun.jdbc.odbc.JdbcOdbcDriver). Я подумал, что это может быть связано с ограничением памяти, поэтому я установил memory=false, чтобы разрешить запись на диск. Есть ли решения или предложения?


person SaidbakR    schedule 26.09.2014    source источник
comment
Попробуйте настроить небольшое автономное Java-приложение, которое подключается к файлу .mdb через UCanAccess, выполняет SQL-запрос и перебирает ResultSet, подсчитывая строки. Таким образом, вы можете подтвердить, действительно ли UCanAccess может видеть более 10 записей. (Были более ранние отчеты, в которых UCanAccess не мог видеть все строки в таблице из-за некоторого незначительного повреждения метаданных файла Access. Выполнение сжатия и восстановления файла .mdb в Access обычно было достаточно для решения проблемы. )   -  person Gord Thompson    schedule 26.09.2014
comment
@GordThompson Чтобы применить ваше предложение, я установил старую версию Microsoft Office, которая была у меня несколько лет назад (Office 2000), и попытался открыть файл с помощью Access 2000 и обнаружил, что Access 2000 сообщает мне, что файл mdb был создан в более старой версии, и он сказал мне преобразовать его в текущую версию! Перед доступом я открыл этот файл с помощью MDB Viewer Plus и обнаружил, что Access показывает больше столбцов, чем показывает. Теперь Access 2000 не может преобразовать файл. Есть ли какие-либо предложения?   -  person SaidbakR    schedule 26.09.2014
comment
Как запустить импорт? Вероятно, через интерфейс администратора? Если да, то очистили ли вы значения в меню «Пуск», «Строки»? Это распространенная ошибка :)   -  person cheffe    schedule 26.09.2014
comment
@cheffe О да, чувак!!! :) Но значения отключены, и если бы к моей текущей жизни добавилась еще одна, я бы не смог это понять! Теперь, как я могу отменить начало и конец этого запроса?   -  person SaidbakR    schedule 26.09.2014
comment
@GordThompson хорошие новости об этой проблеме: начиная с 2.0.9 UCanAccess может идентифицировать проблему с повреждением и читать все записи.   -  person jamadei    schedule 27.09.2014


Ответы (1)


Начиная с версии 2.0.9, UcanAccess может читать все записи, даже если файл "испорчен" (я имею в виду, имеет ли он неправильный номер строки в метаданных таблицы). Кроме того, при такого рода повреждении будет напечатано предупреждение, подтверждающее, что ваша база данных повреждена, и предлагающее использовать инструмент восстановления. Таким образом, чтобы проверить, не связана ли ваша проблема с «повреждением» метаданных, вам просто нужно обновить версию UCanAccess, а затем просмотреть журналы.

person jamadei    schedule 27.09.2014