Solr dataimport从mdb索引只有前10条记录

时间:2014-09-26 14:50:30

标签: ms-access solr lucene dataimporthandler ucanaccess

我有mdb数据库文件,我尝试将其导入Solr。数据库文件有超过6000条记录,但它只索引Solr中的10条记录:

  

索引已完成。添加/更新:10个文档。删除了0个文件。   (持续时间:03s)

日志记录输出仅为警告:

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让它写在磁盘上。有没有解决方案或建议?

1 个答案:

答案 0 :(得分:0)

自2.0.9版本以来,即使文件被“损坏”,UcanAccess也可以读取所有记录(我的意思是,表格的元数据中是否有错误的行号)。 此外,在这种损坏中,它会打印一个警告,确认您的数据库已损坏并建议使用修复工具。 因此,为了验证您的问题是否是由于元数据的“损坏”,您只需升级UCanAccess版本,然后查看日志。