@Indexed注释被忽略

时间:2018-03-08 01:19:43

标签: spring-data-solr

我有一个简单的Product类,如下所示

@SolrDocument(collection = "product")
public class Product {
  @Id
  @Indexed(name = "id", type = "string")
  private String id;
  @Field
    @Indexed(name = "namex", type = "text_general", stored = false, searchable=true)
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

我的问题是完全忽略了注释@Indexed。该字段的名称只是名称(而不是namex),并存储该字段。有什么猜测吗?

UPDATE 1 如果删除类型注释名称,但存储无效

1 个答案:

答案 0 :(得分:0)

我通过修改创建SolrTemplate对象的bean来管理,如下所示:

@Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception {
    SolrTemplate st = new SolrTemplate(client);
    st.setSchemaCreationFeatures(Collections.singletonList(Feature.CREATE_MISSING_FIELDS));
    st.afterPropertiesSet();
    return st;
}