如何 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;
我是 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;