我有一个名为 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"/>
有人可以在这里检测到错误吗?
答案 0 :(得分:0)
我注意到了失败,
我试图在type="text_pt
的字段中保存BLOB(@Lob),它们是不同的类型。
所以或者我创建了一个支持blob(二进制)的字段,或者我可以在db @Column(length = 750)
中接受更大的字符串并保持相同的字段类型。