java - Spring Solr 数据 - 动态字段的自定义转换器
问题描述
我在 Solr 中有一些字段,我目前正在映射到 Java,如下所示:
@Field("file_*") @Dynamic private final Map<String, List<String>> fileDetails;
这匹配许多动态字段,例如:
file_name_1
file_type_1
file_size_1
...
file_name_2
file_type_2
file_size_2
...
...
然后我将该fileDetails
映射转换FileAttachments
为要在代码中其他地方使用的对象。
这目前导致此类具有一些特定的代码,用于将数据在 Solr 中的存储方式转换为 POJO。
理想情况下,我想把它映射得更像这样:
@Field("file_*") private final FileAttachments attachments;
甚至更好(但可能更难完成):
@Field("file_*") private final List<FileAttachment> attachments;
然后(除了注释)该类对数据如何存储在 Solr 中一无所知。
但是,问题是,当我尝试为该字段使用自定义转换器时(如此处详述),转换器不会传递一个Map<String, List<String>>
实例,保存所有匹配的字段file_*
,而是简单地传递一个String
实例,保存匹配模式的第一个字段的值。
有没有办法让它通过Map<String, List<String>>
实例,或者关于如何让这种转换在课堂之外发生的任何其他想法?
在一个理想的世界中,我会更改 solr 文档,使其成为一个子对象(嗯,它们的列表),但这是不可能的,因为它是遗留系统的一部分。
解决方案
推荐阅读
- flutter - 如何将步骤的标题写为右边的单词和左边的另一个
- c# - Native dll找不到.Net Core,但是可以找到.Net Framework
- git - 为什么在压缩后错误切换分支?没有什么可承诺的
- c# - 如何将文本写入文本文件?它覆盖了同一行而不是添加一个新行
- html - html文件中的内部滚动条问题
- css - flex 布局中的图像未在 chrome 上保持纵横比
- python - 将数据透视表列和索引添加为 xticks 和 yticks
- google-apps-script - 我可以创建快捷方式来执行 Google Apps 脚本吗?
- regex - 在 Python 中使用 RegEx 从 URL 中弹出多个字母数字字符串
- database - 在 MS Access 中创建一个查询,如果未提供输入,则返回所有条目;如果提供输入,则返回所选条目