Dynamic Solrj与动态场

Dynamic Solrj与动态场,dynamic,map,field,pojo,solrj,Dynamic,Map,Field,Pojo,Solrj,我有一个solr模式,其中包含不同类型的动态字段。例如,在schema.xml中有: 我想使用SolrJ注释的POJO访问这些字段。我知道我可以为POJO中的每种数据类型提供不同的映射引用,如下所示: 。。。 @字段(“*”s) 公共地图字符串; @字段(“*_i”) 公共映射整数; ... 但是,是否可以将所有动态字段存储在同一张地图中?我的想法是: 。。。 @字段(“*”s) @字段(“*_i”) 公共地图动态领域; ... 我能找到的关于SolrJ、POJO和动态字段的唯一文档是一

我有一个solr模式,其中包含不同类型的动态字段。例如,在schema.xml中有:


我想使用SolrJ注释的POJO访问这些字段。我知道我可以为POJO中的每种数据类型提供不同的映射引用,如下所示:

。。。
@字段(“*”s)
公共地图字符串;
@字段(“*_i”)
公共映射整数;
...
但是,是否可以将所有动态字段存储在同一张地图中?我的想法是:

。。。
@字段(“*”s)
@字段(“*_i”)
公共地图动态领域;
...
我能找到的关于SolrJ、POJO和动态字段的唯一文档是一个旧的功能请求:

我计算出@Field注释中“pattern”值的匹配不必与schema.xml中的匹配。因此,我在我的doc类中定义了一个映射:

@字段(“*DF”)
私有地图动态字段;
然后在schema.xml中,dynamicFields的模式由'DF'后缀:



现在,使用solrServer.addBean(doc)和solrResponse.getBeans(doc.class)存储和检索所有具有不同值类型的dynamicField。这是Solr 3.2.0的版本,它与1.4不兼容。

谢谢Tim,这对我很有帮助。我还发现,对于动态字段,必须为字段注释提供一个模式,即使它只是“*”。“存储”属性也可以为false。