我是 solr 新手,当我尝试在 Solr 中序列化/反序列化 Map 时遇到问题。
我在 Java 应用程序中使用 Spring Data Solr,如下所示:
@Field("mapped_*")
private Map<String, String> values;
它在 Solr 中展平并序列化我的 map ,如下所示:
"key1" : "value1"
"key2" : "value2"
...
但是,当我运行搜索时,返回的对象始终将此字段设置为 NULL。反序列化不适用于该特定字段,看起来它无法将 key1、key2... 识别为 Map 的一部分。
有人知道如何进行反序列化吗?我必须实现自定义转换器吗?
最佳答案
此时 Spring Data Solr 不会自动使用给定的 @Field#value
为映射中包含的值添加前缀,而只会使用 Map#key
作为字段名。有一个改进 ( DATASOLR-202 ) 打开。
此时,values 中包含 key1
、key2
、.. 要求字段名称为 key*
为了正确读回值。
@Field("key*")
private Map<String, String> values;
关于java - 如何使用 Solr/Lucene 序列化/反序列化 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29307653/