我尝试从需要Sybase驱动程序进行连接的数据库导入。
使用data-config从DIH完全导入:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="sybase.jdbc4.sqlanywhere.IDriver"
url="jdbc:sqlanywhere:eng=dbn;dbn=dbname;links=tcpip{host=10.94.XXX.XX}"
user="usr"
password="pwd" />
<document name="products">
<entity name="company" pk="id" query="call WS.getFieldsLimited('RU', '2011-10-01', 10)">
<field column="ID" name="crefo" />
...
...
</entity>
</document>
</dataConfig>
失败并抛出一个例外
严重:完全导入失败 org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:调用WS.getCrefoSearchFieldsLimited('RU','2011-10-01',10)处理文档#1 at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72) at org.apache.solr.handler.dataimport.JdbcDataSource $ ResultSetIterator。(JdbcDataSource.java:253) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210) at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39) 在org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:58) 在org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:71) 在org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:237) 在org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357) 在org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) 在org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) 在org.apache.solr.handler.dataimport.DataImporter $ 1.run(DataImporter.java:370) 引起:java.lang.NullPointerException at org.apache.solr.handler.dataimport.JdbcDataSource $ ResultSetIterator。(JdbcDataSource.java:251) ......还有11个
我是否使用了错误的网址或错误的dataSource声明? 我可以通过sql客户端访问该过程。
答案 0 :(得分:0)
Java正在讨论
的语法(RU', '2011-10-01', 10)
在追踪的第二行。我想你的意思是
('RU', '2011-10-01', 10)
Stack Overflow的自动语法突出显示在这里有所帮助。
在编程语言中嵌入查询时不那么恼怒:
- 在他的职业生涯的前四个月度过的一些人(其中包括)在Python和PHP中进行SQL和Solr查询。
答案 1 :(得分:0)
目前,数据导入处理程序不支持存储过程调用。见https://issues.apache.org/jira/browse/SOLR-1262