我尝试从我的java应用程序索引solr中的数据。
问题是它给了我这个例外
Exception in thread "main" org.apache.solr.common.SolrException: Bad Request
Bad Request
request: http://localhost:8983/solr/update?wt=javabin&version=2
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:436)
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:246)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:104)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:70)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:55)
at com.gismo.ReadFromSolr.main(ReadFromSolr.java:47)
这是我的代码
public static void main(String[] args) throws SolrServerException, SQLException, IOException
{ String url = "http://localhost:8983/solr/db";
CommonsHttpSolrServer solrServer = new
CommonsHttpSolrServer("http://localhost:8983/solr");
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField( "pk_id", "id1");
doc1.addField("doc_type", "content");
doc1.addField( "id", "1");
doc1.addField( "content_text", "hello world" );
Collection<SolrInputDocument> docs = new
ArrayList<SolrInputDocument>();
docs.add(doc1);
solrServer.add(docs);
solrServer.commit();
}
所以我还有一个问题
1。我需要在索引之前在某处声明这些字段:例如在solr中 C:\ solr的-4.1.0 \示例\ solr的\ collection1 \ CONF \ schema.xml中
答案 0 :(得分:1)
是的,您需要确保在SolrInputDocument
中引用的那四个字段在schema.xml的<fields>
部分中声明。请根据需要参考SchemaXml。
此外,请注意CommonsHttpSolrServer
已被弃用HttpSolrServer,因此我建议您使用该类。