我正在尝试将文档插入到solr核心中。
插入文档的代码
public void addDocs(){
// do not include '#' as a part of url
String url = "http://localhost:8983/solr/moviedata.movie_rating";
SolrClient solrclient = new HttpSolrClient(url);
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField("movieid", 1535);
doc1.addField("avgrating", 4);
doc1.addField("name", "some movie");
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
try {
// solrclient.add(doc1); // adding single doc also throws same exception
solrclient.add(docs);
solrclient.commit();
} catch (SolrServerException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我收到错误:
Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:
Error from server at http://localhost:8983/solr/moviedata.movie_rating:
Insert command failed after 4 attempts, source exception follows.
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:558)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:214)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:210)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:124)
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:117)
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:103)
我试图在cassandra.yaml中增加写入超时间隔,但它没有帮助。
答案 0 :(得分:1)
我的第一个想法是,在使用DSE时,您不应该直接将数据插入Solr。最好将数据插入到Cassandra表中,然后让该工具与Solr进行同步。
那就是说,我认为你应该在stacktrace中有一个更精确的错误(一个根本原因)。您提供的错误有点笼统,只能用它来回答。您能否向我们提供有关Cassandra和Solr中受影响元素的更多详细信息(schema.xml和Cassandra创建表的摘录)?谢谢!
希望它有所帮助, 亨利