【发布时间】:2013-03-28 21:39:32
【问题描述】:
我正在尝试通过 /dataimport?command=full-import 导入数据库。这是(我理解的)相关信息:
使用 Solr Tomcat6 在 Xubuntu 12.04 我最初通过 apt-get install solr-tomcat 安装了 solr 我通过 service tomcat6 start 运行 solr
Solr 规范版本:3.6.1.2012.09.06.10.36.26 Solr 实施版本:3.6.1 debian - buildd - 2012-09-06 10:36:26 Lucene 规范版本:3.6.1 Lucene 实现版本:3.6.1 debian - buildd - 2012-09-06 10:34:37 当前时间:2013 年 3 月 28 日星期四 14:13:45 PDT 服务器启动时间:Thu Mar 28 13:41:30 PDT 2013
我的 data-config.xml:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="org.postgresql.Driver"
url="jdbc:postgresql://<ip>:<port>;databaseName=<myDB>"
user="<user>"
password="<password>"
readOnly="True"/>
<document>
<entity name="library" query="<query that works everywhere but via solr for 'id' and 'value'>">
<field column="id" name="id" />
<field column="value" name="title" />
</entity>
</document>
</dataConfig>
日志:
Mar 28, 2013 1:41:36 PM org.apache.solr.common.SolrException log
SEVERE: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT id, value FROM pg_evergreen.metabib.title_field_entry Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:264)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:426)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT id, value FROM pg_evergreen.metabib.title_field_entry Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:327)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT id, value FROM pg_evergreen.metabib.title_field_entry Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(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)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.pullRow(EntityProcessorWrapper.java:330)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:296)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:683)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:619)
... 5 more
Caused by: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:241)
... 13 more
Mar 28, 2013 1:41:36 PM org.apache.solr.update.DirectUpdateHandler2 rollback
INFO: start rollback
Mar 28, 2013 1:41:36 PM org.apache.solr.update.DirectUpdateHandler2 rollback
INFO: end_rollback
我试过了:
- data-config.xml 中的 batchSize(从 -1 到 1000)、readTimeout(从 60000 到 120000)和 ReadOnly 的变化
- 创建了许多以前会发出“警告”的文件和文件夹(建议 here 及以后)
- 确保查询在此实例之外有效,并且我的所有数据库信息都是准确的
- 在搜索“'无法执行查询'数据导入”时,谷歌搜索并尝试了前 3 页中的所有内容(似乎有点帮助)
- 重新安装并重新校准了几次 solr,尝试使用 jetty 和 jboss 以及各种版本的 solr 运行
关于为什么 dataimport 无法执行我的查询的任何想法?
【问题讨论】:
-
您希望返回多少条记录?如果您认为这是数量问题,请尝试为查询添加限制,以查看查询是否有效。
-
有趣的想法...刚刚尝试使用“SELECT id, value FROM pg_evergreen.metabib.title_field_entry WHERE id = 5571910”,结果相同:“无法执行查询”(它应该返回一个项目)
-
想知道这是否是字符串构造问题,可能是 id 和 value 周围的反引号?或者 value 可能是 solr 的保留关键字。此外,请检查您是否可以使用运行 solr 的框的用户/密码连接到数据库,以确保这不是连接问题。
-
我正在使用相同的用户/密码从同一个框运行 pgadmin3,并且查询工作得很好。现在研究保留关键字的可能性......感谢您的建议顺便说一句!非常感谢您的帮助!
-
您可能有错字:
url="jdbc:postgresql://<ip>:<port>;databaseName=<myDB>"。这应该是url="jdbc:postgresql://<ip>:<port>/<myDB>。例如,请参阅solr.pl/en/2010/10/11/…。