0

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つ質問があります

1.インデックスを作成する前に、このフィールドをどこかで宣言する必要がありますか: たとえば、solr C:\solr-4.1.0\example\solr\collection1\conf\schema.xml

4

1 に答える 1

1

はい、参照している 4 つのフィールドがschema.xmlSolrInputDocumentのセクションで宣言されていることを確認する必要があります。必要に応じてSchemaXml<fields>を参照してください。

また、 HttpSolrServerCommonsHttpSolrServerの支持が推奨されていないことに注意してください。そのため、そのクラスを使用することをお勧めします。

于 2013-03-29T17:09:48.473 に答える