我是solr的新手,当我尝试在Solr中序列化/反序列化Map时,我遇到了问题。
我在Java应用程序中使用Spring Data Solr如下:
@Field("mapped_*")
private Map<String, String> values;
它在Solr中展平并序列化我的地图如下:
"key1" : "value1"
"key2" : "value2"
...
但是,当我运行搜索时,返回的对象将此字段始终设置为NULL。反序列化不适用于此特定字段,看起来它无法识别key1,key2 ...作为Map的一部分。
有谁知道如何使推导工作?我是否必须实施自定义转换器?
答案 0 :(得分:3)
目前,Spring Data Solr不会自动为地图中包含的值添加给定@Field#value
前缀,但只会使用Map#key
作为字段名。有一个改进(DATASOLR-202)开放。
目前,值中的key1
,key2
,..要求字段名为key*
才能正确读回值。
@Field("key*")
private Map<String, String> values;