在我们的项目中,我们有一个solr模式,其中包含多个,接近重复的字段的值。我的意思是我们有一个示例字段字段,我们将其存储为字段, field_w 和 field_l solr和每个都有不同的搜索增强因子(动态类型不是_w或_l但相似)。
因此,我们有一个模型,我们通过自定义代码映射到 SolrSchemaModel ,然后我们将其存储在Solr中。当我们从Solr读取时,我们读取 SolrDocumentList (不是 SolrSchemaModel ,因为它有嵌入的文档,在读取时映射到 __ childDocuments __ )并构建一个< strong> ModelSearchResponse (不是模型,因为它缺少字段)。
正如您所看到的,只要我们想要将字段添加到模型,这将导致很多维护,如果我们想要更改架构,我们还需要更改 SolrSchemaModel 以及与之相关的所有代码映射。
其他人如何处理Solr的持久性?弹跳的一个想法是将类的JSON序列化作为Solr字段,这样只要架构或模型发生更改并且序列化/反序列化保持不变,就会更改写入。另一个人建议不要使用Solr作为持久性只有一些单独的东西(我想这意味着在返回结果之前执行搜索后在另一个数据库上执行读取)。
人们如何解决这个问题?如果相关,请将 Java 8 与 SolrJ 一起使用。
答案 0 :(得分:2)
这里有几件事情: