solr v6+ 中 org.apache.solr.client.solrj.util.ClientUtils.toSolrInputDocument() 方法的替代品?

May*_*hav 5 solr apache-spark

由于方法org.apache.solr.client.solrj.util.ClientUtils.toSolrInputDocument()在 solr 6 中被删除,现在可以使用什么替代方法将 SolrDocument 转换为 SolrInputDocument?为什么要做这个改变?

EDIT-1: @MatsLindh 回答后(不起作用):

1 List<SolrDocument> sds = MyUtil.getMySolrDocs();
2 for(SolrDocument sd : sds){
3        SolrDocumentBase sdb =  sd;
4        SolrInputDocument sid = (SolrInputDocument)sdb;
5        System.out.println("Docs id : "+sid.get("id"));
6        System.out.println("Docs title : "+sid.get("title"));
7        
8 }
Run Code Online (Sandbox Code Playgroud)

Mat*_*ndh -1

在 6.x 中,它们都共享相同的抽象父类 ,SolrDocumentBase因此要在它们之间进行转换,您应该能够在必要时通过父类在类之间使用强制转换。

更改的原因是它们都包含几乎相同的功能,因此不是让两个类执行几乎相同且不共享任何内容,而是将功能移至保留通用方法和属性的父类,并让实现子类为这些用例完成特定的工作。