当我不知道文档有多少个字符串字段时,如何从 Solr 数据库动态创建 Java class
How can I dynamically create Java class from Solr db when I don't know how many String fields documents have
我正在开发一个基于外部 REST API 响应将动态字段添加到 solr 数据库的应用程序。字段具有后缀 *Txt。现在,我有例如带有 fistNameTxt、lastNameTxt 的文档。稍后我需要在 Java 应用程序上使用文档,我的 class 是:
@SolrDocument
@AllArgsConstructor
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResourceSolre {
String firstNameTxt;
String lastNameTxt;
}
问题是外部 API 可以更改文档并为我提供更多 String(甚至 Long)字段。 Solr 会将所有内容添加到数据库(因为它们是动态字段)但我的 class 将不再反映文档。问题是如何创建一个也将动态处理 Solr 文档的 class?
你can use wildcards when mapping Solr fields到你自己的领域:
@Field("*_txt")
public Map<String, String> dynamicFieldsTxt;
这将为您提供一张地图,其中 <FieldName>
映射到 <Value>
。
我正在开发一个基于外部 REST API 响应将动态字段添加到 solr 数据库的应用程序。字段具有后缀 *Txt。现在,我有例如带有 fistNameTxt、lastNameTxt 的文档。稍后我需要在 Java 应用程序上使用文档,我的 class 是:
@SolrDocument
@AllArgsConstructor
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResourceSolre {
String firstNameTxt;
String lastNameTxt;
}
问题是外部 API 可以更改文档并为我提供更多 String(甚至 Long)字段。 Solr 会将所有内容添加到数据库(因为它们是动态字段)但我的 class 将不再反映文档。问题是如何创建一个也将动态处理 Solr 文档的 class?
你can use wildcards when mapping Solr fields到你自己的领域:
@Field("*_txt")
public Map<String, String> dynamicFieldsTxt;
这将为您提供一张地图,其中 <FieldName>
映射到 <Value>
。