无法使用SimplePostTool在solr中发布到核心

时间:2014-03-11 16:27:43

标签: solr

我是使用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存在,为什么说它无法找到网址?我错过了什么?如何解决这个问题?

6 个答案:

答案 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