java - 当我不知道文档有多少个字符串字段时,如何从 Solr db 动态创建 Java 类

标签 java solr lucene solrj builder

我正在开发一个应用程序,该应用程序根据外部 REST API 响应将动态字段添加到 solr DB。字段具有后缀 *Txt。目前,我有包含firstNameTxt、lastNameTxt 的示例文档。后来我需要在Java应用程序上使用文档,我的类是:

@SolrDocument
@AllArgsConstructor
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResourceSolre {

    String firstNameTxt;
    String lastNameTxt;

}

问题是外部 API 可以更改文档并为我提供更多字符串(甚至长整型)字段。 Solr 会将所有内容添加到数据库(因为它们是动态字段),但我的类将不再反射(reflect)文档。问题是如何创建一个也能动态处理 Solr 文档的类?

最佳答案

can use wildcards when mapping Solr fields到你自己的领域:

@Field("*_txt")
public Map<String, String> dynamicFieldsTxt;

这将为您提供一张带有 <FieldName> 的 map 映射到<Value> .

关于java - 当我不知道文档有多少个字符串字段时,如何从 Solr db 动态创建 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60091432/

相关文章:

elasticsearch - Elasticsearch多个分析器不起作用

java - JPanel 放置在 JScrollPane 后面

java - 调试 : Mergesort

solr - solr 是否使用余弦相似度?

lucene - 为 solr 构建案例

solr - Apache solr 与 solr 提交和索引的混淆

java - 诊断 Java 中断标志

java - Hibernate sessionFactory.openSession() 返回 null

java - Solr执行DataImportHandler时出现java.lang.ClassNotFoundException : net. minidev.json.writer.JsonReaderI

elasticsearch - 如何在ElasticSearch或SOLR中为共享文件夹建模?