【发布时间】:2020-12-15 11:30:36
【问题描述】:
我有一个 SOLR 服务器,为 3 种类型的实体提供信息,这些实体共享一些共同的信息。出于多种原因,我决定将所有信息存储在同一个核心中。
使用 solr data spring,我试图将文档信息从 SOLR 服务器传输到 3 类实体继承模型中:
@SolrDocument(solrCoreName = "core")
open class Item {
common fields
type : String = "",
open var secondaryFields: Map<String, List<String>>? = null
}
@SolrDocument(solrCoreName = "core")
class A (
@Indexed("a_*")
override var secondaryFields: Map<String, List<String>>? = null
) : Item()
@SolrDocument(solrCoreName = "core")
class B (
@Indexed("b_*")
override var secondaryFields: Map<String, List<String>>? = null
) : Item()
...
class C(...)
这工作得很好,直到我尝试搜索所有文档。由于具体的类依赖于对象类型,并且默认映射到Item,所以secondaryFields属性显然没有填写相应的信息,所以secondaryFields总是为null。
我想我必须在返回的 SOLR 文档和类本身之间实现自定义映射?有可能吗?
【问题讨论】:
标签: spring kotlin solr spring-data spring-data-solr