我是使用solr的新手。我目前在http://localhost::8983/solr
上运行了solr。
我的目标是索引大量文件。我已经通过列出solr中的所有内核验证了我试图发布的核心存在,我使用了解释的方法here
我也明白要使用SimplePostTool发布到特定核心,必须使用java -Durl=http://localhost:8983/solr/<corename>/update -jar post.jar <filename>
然而,问题是我收到以下错误。
SimplePostTool version 1.5
Posting files to base url http://localhost:8983/solr/collection1/update using content-type application/xml..
POSTing file tmpzWztTN
SimplePostTool: WARNING: Solr returned an error #404 Not Found
SimplePostTool: WARNING: IOException while reading response: java.io.FileNotFoundException: http://localhost:8983/solr/collection1/update
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/collection1/update..
SimplePostTool: WARNING: Solr returned an error #404 Not Found for url http://localhost:8983/solr/collection1/update?commit=true
Time spent: 0:00:00.023
由于我已经确认核心collection1
存在,为什么说它无法找到网址?我错过了什么?如何解决这个问题?
答案 0 :(得分:14)
看起来“开始”核心没有被创建。 使用此命令创建“gettingstarted”核心。
bin / solr create -c gettingstarted
创建核心后,“bin / post -c gettingstarted docs /”命令运行时没有任何错误。
答案 1 :(得分:4)
正如在@ cheffe的评论中所说,我发现我失踪了<requestHandler> name="/update" ...
我是solr noob所以我查了requestHandlers
&#39; s here。这tutorial也很有帮助。在本质上,我只在solrconfig.xml
文件中添加了以下行
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
答案 2 :(得分:2)
确认,这实际上对我有用[Win10,solr 5.4.1,java 1.8.0_60]:
$ java -Dauto -Dc=gettingstarted -Drecursive -jar example/exampledocs/post.jar docs/quickstart.html
导致... HTTP ERROR 404 url ...如上所述,我按照建议做了:
$ .\bin\solr create -c gettingstarted
&安培;然后
$ java -Dauto -Dc=gettingstarted -Drecursive -jar example/exampledocs/post.jar .\docs
为我工作。感谢。
答案 3 :(得分:0)
在solr-5.4.1中,我无法发布到我的核心并收到此消息:
SimplePostTool: WARNING: Solr returned an error #404 (Not Found) for url: http://localhost:8983/solr/gettingstarted/update
SimplePostTool: WARNING: Response: <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/gettingstarted/update. Reason:
<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
SimplePostTool: WARNING: IOException while reading response: java.io.FileNotFoundException: http://localhost:8983/solr/gettingstarted/update
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update...
SimplePostTool: WARNING: Solr returned an error #404 (Not Found) for url: http://localhost:8983/solr/gettingstarted/update?commit=true
SimplePostTool: WARNING: Response: <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/gettingstarted/update. Reason:
<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
Time spent: 0:00:00.030
我修复了将以下行添加到的问题 〜/ solr-5.4.1 / server / solr / corex / solrconfig.xml:
(我在RequestHandlers部分标题后立即添加了它) `
然后我使用(我使用新的核心名称):
$ bin / post -c example / exampledocs / money.xml
完美无缺。请注意,您必须提供.xml文件(或您希望上传到solr的任何文件)的完整路径。
答案 4 :(得分:0)
对我来说,问题是我使用的是8983以外的端口。我必须在我的post命令中包含正确的端口。
bin/post -p 1234 -c gettingstarted example/exampledocs/*.xml
答案 5 :(得分:0)
首先创建一个核心:
solr-7.6.0 \ bin> solr create -c vjcore
然后您可以看到:
创建了新的核心'vjcore2'
然后导航到该目录:
solr-7.6.0 \ example \ exampledocs>
java -jar -Durl = http://localhost:8983/solr/vjcore2/update post.jar ipod_other.xml
然后浏览器点击:http://localhost:8983/solr/#/vjcore
您创建的核心将包含2个文档
希望这会有所帮助!
谢谢
-Vj