如何使用Solr / Lucene序列化/反序列化地图?

时间:2015-03-27 18:23:31

标签: java solr lucene spring-data spring-data-solr

我是solr的新手,当我尝试在Solr中序列化/反序列化Map时,我遇到了问题。

我在Java应用程序中使用Spring Data Solr如下:

@Field("mapped_*")
private Map<String, String> values;

它在Solr中展平并序列化我的地图如下:

"key1" : "value1"
"key2" : "value2"
...

但是,当我运行搜索时,返回的对象将此字段始终设置为NULL。反序列化不适用于此特定字段,看起来它无法识别key1,key2 ...作为Map的一部分。

有谁知道如何使推导工作?我是否必须实施自定义转换器?

1 个答案:

答案 0 :(得分:3)

目前,Spring Data Solr不会自动为地图中包含的值添加给定@Field#value前缀,但只会使用Map#key作为字段名。有一个改进(DATASOLR-202)开放。

目前,中的key1key2,..要求字段名为key*才能正确读回值。

@Field("key*")
private Map<String, String> values;