Seltsames Problem beim Erstellen eines Index mit solrj?
伊谢尔伦
伊谢尔伦 2017-06-15 09:22:21
0
1
1945

@RequestMapping(value = „/solr“, method = RequestMethod.GET)

public void getSolr() throws SolrServerException, IOException {

    String urlString = "http://192.168.10.129:8983/solr/mycore";
    SolrClient client = new HttpSolrClient.Builder(urlString).build();
    SolrInputDocument doc = new SolrInputDocument();
    doc.addField("id", "c");
    client.add(doc);
    client.commit();
}

Erstellen Sie einfach einen Index und melden Sie dann einen Fehler

Verursacht durch: org.apache.solr.client.solrj.SolrServerException: IOException ist beim Gespräch mit dem Server aufgetreten unter: http://192.168.10.129:8983/so...

at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:624)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:279)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:268)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:160)
at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:484)
at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:463)
at com.ansel.testall.solrController.getSolr(solrController.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
... 52 common frames omitted

Verursacht durch: org.apache.http.NoHttpResponseException: 192.168.10.129:8983 konnte nicht antworten

at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:257)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:207)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:684)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:515)
... 71 common frames omitted

doc wurde hinzugefügt, aber der Commit ist fehlgeschlagen.

Wenn Sie „Add Doc“ und „Commit“ in zwei Anfragen aufteilen, entsteht kein Problem, wie folgt:

@RequestMapping(value = "/solr", method = RequestMethod.GET)
    public void getSolr() throws SolrServerException, IOException {

        String urlString = "http://192.168.10.129:8983/solr/mycore";
        SolrClient client = new HttpSolrClient.Builder(urlString).build();
        SolrInputDocument doc = new SolrInputDocument();
        doc.addField("id", "c");
        client.add(doc);
    }
    @RequestMapping(value = "/solr2", method = RequestMethod.GET)
    public void getSolr2() throws SolrServerException, IOException {

        String urlString = "http://192.168.10.129:8983/solr/mycore";
        SolrClient client = new HttpSolrClient.Builder(urlString).build();
        client.commit();
    }

Es gibt kein Problem bei der Ausführung von Abfragevorgängen.

solr: 6,60

jdk: 1,8

Iteyes frühere ähnliche Situation:

http://www.iteye.com/problems...

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(1)
为情所困

临时解决方案,使用如下方法提交:

UpdateRequest req = new UpdateRequest();
        req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
        req.add(doc);
        UpdateResponse rsp = req.process(client);

https://wiki.apache.org/solr/...上找到的,
这个是部分译文http://www.cnblogs.com/llz502...

为什么这样就可以了呢?还是好奇怪

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage