1

現在、Solr 4.1 と Lucene 4.1 の組み合わせで次の問題が発生しています。

次のような Solr-Bean があります。

import org.apache.solr.client.solrj.beans.Field;

public final class Bean {

    @Field
    private int someInt;
    @Field
    private String someString;
    //Fields like this are just being updated for easier use of the bean
    private List<Integer> someStringSplitIntoIntegers

        //setters, rest is the same:
        public void setSomeInt(int someInt) {
            this.someInt = someInt;
        }

        //getters straightforward...

}

HttpSolrServer.addBean(bean) を介して Bean を Solr データベースに追加したいのですが、次の例外が発生しています。

Exception in thread "main" org.apache.solr.client.solrj.beans.BindingException: Invalid setter method. Must have one and only one parameter
    at org.apache.solr.client.solrj.beans.DocumentObjectBinder$DocField.storeType(DocumentObjectBinder.java:202)
    at org.apache.solr.client.solrj.beans.DocumentObjectBinder$DocField.<init>(DocumentObjectBinder.java:150)
    at org.apache.solr.client.solrj.beans.DocumentObjectBinder.collectInfo(DocumentObjectBinder.java:119)
    at org.apache.solr.client.solrj.beans.DocumentObjectBinder.getDocFields(DocumentObjectBinder.java:99)
    at org.apache.solr.client.solrj.beans.DocumentObjectBinder.toSolrInputDocument(DocumentObjectBinder.java:73)
    at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:136)
    at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:125)
    (...my call...)

しかし、理由がわかりません。セッターごとに複数の引数のクラスを数回持っていますが、問題ありません(Eclipseによって生成されます)。

そして今、質問:

私は何が欠けていますか?この理由は何でしょうか?schema.xml にエントリがないと、これらのエラーが発生しますか?

前もって感謝します。

マーティン・ブラウン

4

2 に答える 2

3

Fieldsetter メソッドで直接注釈を使用できます。

 @Field("cat")
   public void setCategory(String[] c){
       this.categories = c;
   }

solrにsomeIntというintフィールドがあることを確認してくださいschema.xml

乾杯

于 2013-03-04T15:15:08.517 に答える