2

我是 Solr 的新手,我正在尝试使用 Solrj pojo 来创建我的文档。

我应该在我的 pojo 中遵守 Solr 类型到 Java 的映射吗?pojo 中的所有内容都是字符串吗?是否有从 Java 基本类型到 Solr 的神奇映射并且它是透明的?

这似乎是一个基本问题,但我找不到答案。

TIA。

4

3 回答 3

2

您可以使用@Field注释将 pojo 映射到 solr 类型solrj

下面是示例代码

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

public class Person {

    @Field
    private int id;

    @Field("first_name")
    private String firstName;

    @Field("last_name")
    private String lastName;

    @Field
    private String age;

    // Getters & setters


}

schema.xml应该包含字段id, first_name, last_name, age

于 2012-10-10T20:57:48.233 回答
1

这个问题的答案似乎是对于 Solrj bean(使用@Field),字段的 Java 类型是对应于 solr.*Field 类型的 Java OBJECT 。

例如 solr.BoolField 映射到 java.lang.Boolean。

Long、Integer、Float、...

我希望这可以帮助下一个可怜的灵魂:-)

于 2012-10-17T15:53:17.603 回答
0

Solrj 可以使用 RequestWriter 将文档流式传输为 XML 或二进制文件。document.addField 方法确实需要一个对象,因此可以传递 Java 数据类型,但我没有看到映射。如果有的话,它可能会假设基本数据类型。如果您查看示例代码,情况就是如此。

如果我没记错的话(这是不久前的),我们只是遇到了日期问题,并为此编写了自己的格式化程序。这是从 Solr 1.2 天开始的,代码运行良好,仍在生产中

http://lucene.apache.org/solr/api-4_0_0-BETA/org/apache/solr/common/SolrInputDocument.html

这是 InputType 的 JavaDoc。http://lucene.apache.org/solr/api-4_0_0-BETA/org/apache/solr/common/SolrInputField.html

于 2012-10-10T21:05:26.757 回答