我最近开始使用solr。我使用的是最新的Solr v6.1.0。我按照quick start教程来了解它。作为一个Windows用户,我不得不求助于使用Post tool for Windows导入我的.csv数据的另一种方式
我主要想看看Solr如何处理和搜索我拥有的大型数据集。它是一个522 MB my_db.csv
文件,格式正确(运行各种python脚本来检查)。
我通过常规程序启动了solr云。然后,我导入了这个数据集的一部分(为了特定,29行my_db.csv
),看看它是否有效。
贝壳:
C:\Users\MAC\Downloads\solr-6.1.0\solr-6.1.0>java -Dc=gettingstarted -Ddata=files -Dauto=yes -jar example\exampledocs\post.jar example\exampledocs\29lines.csv
结果是:
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/gettingstarted/update...
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
POSTing file 29lines.csv (text/csv) to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update...
Time spent: 0:01:28.106
幸运的是,它工作得很好,我可以通过转到http://localhost:8983/solr/gettingstarted_shard2_replica1/browse使用他们提供的默认速度搜索包装器。到目前为止,它已存储了我的所有数据。准确地说是29行。
现在,我想看看是否导入了整个522 MB的数据,我使用了相同的命令(只是替换了.csv文件,当然),然后我运行它。我确实需要一段时间,并且在将近10分钟之后它已经插入 1,3,6,000 32,674 ,然后它抛出了这个错误。
结果是:
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/gettingstarted/update...
Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
POSTing file omdbFull.csv (text/csv) to [base]
SimplePostTool: WARNING: Solr returned an error #503 (Service Unavailable) for url: http://localhost:8983/solr/gettingstarted/update
SimplePostTool: WARNING: Response: <?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">503</int><int name="QTime">128191</int></lst><lst name="error"><lst name="metadata"><str name="error-cla
ss">org.apache.solr.common.SolrException</str><str name="root-error-class">org.apache.solr.common.SolrException</str></lst><str name="msg">No register
ed leader was found after waiting for 4000ms , collection: gettingstarted slice: shard2</str><int name="code">503</int></lst>
</response>
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 503 for URL: http://localhost:89
83/solr/gettingstarted/update
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update...
Time spent: 0:08:36.342
摘要
这很奇怪。我不太确定为什么会发生这种情况。也许我必须改变某种类型的&#34;超时&#34;提交的参数?不幸的是,我无法看到Windows post工具的任何此类选项。
答案 0 :(得分:0)
我找到了解决问题的方法。问题不在于文件很大。在我的情况下,大约500 MB csv。我确定它会通过更大的文件。
问题是,我认为Solr有某种自动识别索引中输入的值的类型。例如,我的CSV有一个列&#34;年&#34;喜欢&#34; 2015&#34;,&#34; 2014&#34;,&#34; 1970&#34; ...等等,但是当这个专栏也有不适当的年份,我不知道,就像&#34; 2014-2015&#34;,&#34; 1980-1988&#34;。
Solr会停下来并抛出一个例外,因为这不是一年而是一年的范围。它并没有期待这种价值。
<强>摘要强>
要解决这个问题,我只是过滤掉有缺陷的年份行和volla!它在大约15分钟内处理了我的500 MB csv。在那之后,我有一个很好的数据库准备好被搜索了!