当前位置: 首页 > 知识库问答 >
问题:

Solr Beans(无效的setter方法。必须有且只有一个参数)没有任何原因吗?

杜俊风
2023-03-14

目前我在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将bean添加到Solr数据库中。addBean(bean)和我得到以下例外:

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...)

但我不明白为什么。我多次为每个setter提供一个以上参数的类,但它没有问题(它甚至是由Eclipse生成的)。

现在的问题是:

我错过了什么?这可能是什么原因?执行架构中缺少的项。xml导致这些错误(我怀疑是什么?

提前感谢。

马丁·布劳恩

共有2个答案

连鸿
2023-03-14

我已经自己修好了。

从评论中可以看出:

好的。似乎是固定的。我在getters上也使用了@field,这导致了错误。我已经尝试删除它,但又出现了另一个错误。所以我把它改回来了。此外,Solr Beans不符合布尔isBoolean()方法(这导致了新的错误)。-Martin Braun刚才编辑

朱皓
2023-03-14

可以直接在setter方法上使用字段注释:

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

确保solr模式中有一个int字段。xml称为someInt

干杯

 类似资料:
  • 大家好,我有这样的问题: 它说: 隐式类必须有一个主构造函数,并且在def traverseFilteringErrors的第一个参数列表中只有一个参数 和 类型不匹配。必填:Future[B] = 我是新来的scala,所以我应该怎么做来解决这个问题?

  • 我已经开始学习Haskell,我读到Haskell中的每一个函数只需要一个参数,我不明白在Haskell的庇护下发生了什么魔法,这使得它成为可能,我想知道它是否有效。 上面的签名意味着函数接受一个,然后返回另一个函数,该函数接受一个,并返回一个 示例1相对简单,但我开始想知道当函数稍微复杂一点时会发生什么。 在这个例子中,我编写了一个函数,并以两种方式执行它,一次传递一个参数,一次传递所有参数。

  • 我找不到任何关于数学交换和堆栈溢出的问题来回答这个特定问题。这是我发现的最相似的问题,但这个问题构造得太差,答案完全不充分。 我尝试过在谷歌上寻找无济于事。我确实发现了这一点,但这个公式似乎效率低下,因此不够。例如,如果我们取数字21... 现在想象一下找到远大于21的数字的共同因素,例如2,252和4,082...上述方法没有任何效率。 我想做的是找出最有效的方法来找到任何两个数字的所有公因数。

  • 我创建了这个类。但我得到了这个错误 函数必须有一个明确的参数列表。尝试添加参数列表 我试过的 升级颤振 颤振医生输出

  • e(fx)clipse插件为Eclipse提供了一个generate命令,该命令将生成如上所述的JavaFX getter/setter。IntelliJ IDEA有类似的功能吗?

  • 我正在构建一个Android应用程序,在尝试读取XLSX文件时,面临一个非静态方法异常。 尝试了所有的可能性,如更新应用程序/build.gradle中的依赖关系,但没有成功。 请帮助我解决此问题。 我正在添加app.gradle文件。其他代码是使用XSSF的基本XLSX文件读取。当我试图在Spring Suite工具中运行这个java片段时,它运行正常。然而,当我将这些java片段集成到Andr