带弹簧数据的solr dynamicField

时间:2015-02-02 08:00:06

标签: java solr spring-data-solr

我有一个像

这样的架构的solr核心
<schema name="product" version="1.5">
  <field name="name" type="text_general" indexed="true" stored="true"/>
  <dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true"/>
  ...

我的产品就像

{name : "product1", color : "red", foo   : "bar", ....}

假设在solr上保存为

{name : "product1", color_t:"red", foo_t : "bar" , ....}

我正在使用spring-data-solr来连接和使用solr。动态字段是动态的,因此我无法在@SolrDocument中定义它们,因此我的产品无法轻松更新或查询。

可以使用org.apache.solr.client.solrj.SolrServer并手动完成工作。无论如何使用弹簧数据处理动态字段?也许通过在Document中定义Map并让Spring使用map键作为solr字段?

1 个答案:

答案 0 :(得分:2)

您可以为动态字段定义Map,如下所示

private @Field("*_t") Map<String, List<String>> textMap;

假设_t字段是多值的,您可以Map<String,List>Map<String,String>