你好世界solj程序给我一个例外'坏请求'

时间:2013-03-29 16:38:41

标签: java solr solrj

我尝试从我的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中

1 个答案:

答案 0 :(得分:1)

是的,您需要确保在SolrInputDocument中引用的那四个字段在schema.xml的<fields>部分中声明。请根据需要参考SchemaXml

此外,请注意CommonsHttpSolrServer已被弃用HttpSolrServer,因此我建议您使用该类。