我一直在尝试在具有大约 500 万个文档的服务器上配置 solr-DIH,但它无法正常工作,但它在我的本地主机上运行良好,有 100000 个文档。可能有什么问题?
这是我得到的日志
Exception while processing: product_master document : SolrInputDocument[]:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT cs_product_id,title FROM product_master Processing Document # 1
16:10:56
SEVERE
DataImporter
Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT cs_product_id,title
我的数据配置在这里
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://www.mysite.com/mydb" user="myusername" password="mypwd" batchSize="-1"/>
<document>
<entity name="product_master" pk="cs_product_id"
query="SELECT cs_product_id,title FROM product_master"
deltaImportQuery=" SELECT cs_product_id,title FROM product_master WHERE cs_product_id = '${dataimporter.delta.cs_product_id}'"
deltaQuery=" SELECT cs_product_id FROM product_master WHERE update_timestamp > '${dataimporter.last_index_time}'">
<field column="cs_product_id" name="cs_product_id"/>
<field column="title" name="title"/>
</entity>
</document>
</dataConfig>
应该没有任何区别,所以我建议你执行以下操作:
- 设置为调试 DIH 组件的日志级别
- 使用简单的 main 方法创建一个简单的类,该方法使用该确切的连接 URL、确切的用户名和密码对该数据库执行一些微不足道的操作
我认为通过上面的两个技巧之一,您将明白这一点(我猜,这与Solr无关)