如何 serialize/deserialize 与 Solr/Lucene 的地图?

How to serialize/deserialize a map with Solr/Lucene?

我是 solr 的新手,当我尝试在 Solr 中 serialize/deserialize 映射时遇到问题。

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

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

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

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

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

有谁知道如何使序列化工作?我必须实施自定义转换器吗?

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

此时 key1, key2,.. in values 需要字段名是 key* 才能回读值正确。

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