Solr bean字段不起作用

时间:2016-05-13 13:49:49

标签: java solr javabeans solrj

我有一个名为 Node 的类,我想使用Solr Beans功能发送到solr所有Node对象数据。

我已经在 schema.xml 中定义了所有字段,但是有一个(字段描述)没有在solr中编入索引,我也不明白为什么。

我的班级(型号):

import com.avaje.ebean.Model;
import org.apache.solr.client.solrj.beans.Field;
public class Node extends Model {
    @Id
    @Field("id)
    public long id;

    @Constraints.Required
    @Field("code")
    public String code;

    @Field("name")
    public String name;

    @Lob //support big strings (bigger than varchar(255) in db
    @Field("description")
    public String description;
}

索引节点对象:

SolrClient solrClient = new HttpSolrClient(url);
solrClient.addBeans(Node.find.all());
solrClient.commit(); //try catchs ...

schema.xml中的字段

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />   
<field name="_version_" type="long" indexed="true" stored="false"/>
<field name="antecessorNodeCode" type="text_pt" indexed="false" stored="true" multiValued="false"/>
<field name="code" type="text_pt" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_pt" indexed="true" stored="true" multiValued="false"/>
<field name="description" type="text_pt" indexed="true" stored="true" multiValued="false"/>
<field name="includeEvents" type="text_pt" indexed="true" stored="true" multiValued="true"/>
<field name="excludeEvents" type="text_pt" indexed="true" stored="true" multiValued="true"/>

有人可以在这里检测到错误吗?

1 个答案:

答案 0 :(得分:0)

我注意到了失败, 我试图在type="text_pt的字段中保存BLOB(@Lob),它们是不同的类型。 所以或者我创建了一个支持blob(二进制)的字段,或者我可以在db @Column(length = 750)中接受更大的字符串并保持相同的字段类型。