【问题标题】:solr indexing not working when i try to insert 1000000 rows but works fine when i try to index 400000 rows or below当我尝试插入 1000000 行时,solr 索引不起作用,但当我尝试索引 400000 行或以下时工作正常
【发布时间】:2014-05-21 12:29:38
【问题描述】:

我正在使用 solr 4.7.1 并尝试进行完全导入。我的数据源是 mysql 中的一个表。它有 10000000 行和 20 列。

每当我尝试执行完整导入时,solr 都会停止响应。但是当我尝试导入 400000 或更少时它工作正常。

如果我尝试导入的数量超过此 solr 将不会索引结果,它会停止响应或显示“索引失败”。在错误日志中显示“无法执行查询”。但我不明白查询对于较少数量的记录如何运行良好,但当我运行更多记录时失败

我的系统配置如下

CPU-i7 内存 -6Gb OS-64 位 windows 7 我无法弄清楚问题是什么,我尝试将 max_allowed_pa​​cket 增加到 1000M 甚至 java 堆大小。

请帮忙提前谢谢

这是错误代码

`处理时出现异常:播放器名称文档:SolrInputDocument(字段:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT player_id,firstname,lastname,value1,value2,value3,value4 ,value5,value6,value7,value8,value9,value10,value11,value18,value19,value20, country_id, playername_modtime,player_flag from playername WHERE 'true' != 'false' OR playername.playername_modtime > '2014-05-23 10: 38:56' 在 org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:281) 处 org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71) 处理文档 #1 ) 在 org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:42) 在 org.apache.solr 的 org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:238)。 handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59) 在 org.apache.solr.handler.dataimport.SqlEnti tyProcessor.nextRow(SqlEntityProcessor.java:73) 在 org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243) 在 org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:第477章.handler.dataimport.DocBuilder.execute(DocBuilder.java:239) 在 org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411) 在 org.apache.solr.handler.dataimport.DataImporter.runCmd (DataImporter.java:483) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:464) 原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

从服务器成功接收到的最后一个数据包是 130,037 毫秒前。最后一个成功发送到服务器的数据包是在 130,038 毫秒前。在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 在 java.lang.reflect.Constructor.newInstance(Unknown Source)在 com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 在 com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127) 在 com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2288) ) 在 com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:2044) 在 com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3549) 在 com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java: 489) 在 com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3240) 在 com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2411) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java :2834) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2781) 在 com.mysql.jdbc.Statement Impl.execute(StatementImpl.java:908) 在 com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788) 在 org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:274) 。 .. 12 更多原因:java.io.EOFException:无法读取来自服务器的响应。预期读取 6 个字节,在连接意外丢失之前读取 4 个字节。在 com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3161) 在 com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2269) ... 23 更多 5/23/2014 8:32:18 PM错误 DataImporter Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT player_id,​firstname,​lastname,​value1,​value2, ​value3,​value4,​value5,​value6,​ value7,​value8,​value9,​value10,​value11,​value18,​value19,​value20,​ country_id,​ playername_modtime,​player_flag from playername WHERE 'true' != 'false' OR playername.playername_modtime > '2014-05-23 10:38:56' Processing Document #1 Last Check: 5/23/2014 8:36:34 PM`

【问题讨论】:

  • 您收到的错误消息肯定比“索引失败”更多。请编辑您的问题以显示完整和准确的错误消息,从日志中剪切和粘贴,而不是解释。
  • 嗨,安迪,感谢您的回复,我在日志中得到的错误是“无法执行查询”。但我不明白查询对于较少的记录数如何运行良好,但当我运行更多时失败记录数
  • 这个异常是 CommunicationsException 并且由于链接失败。你的mysql是在不同的机器上还是在同一台机器上?
  • 您好,谢谢您的回复,所有东西都在同一台机器上。在本地主机上运行。但是如果它是链接失败,为什么链接只因大量数据而失败,但对于较少的数据运行良好数据。请帮助,已经 5 天了,我只是无法弄清楚

标签: solr full-text-indexing


【解决方案1】:

在 data-config.xml 中添加了 batchSize="-1" 并且成功了

http://wiki.apache.org/solr/DataImportHandlerFaq

【讨论】:

  • 拯救了我的一天!谢谢! ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多