根据SolrEntityProcessor is called only once for sub-entities,我们可以使用https://issues.apache.org/jira/browse/SOLR-3336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel中的修补SolrEntityProcessor来解决子实体问题。
我尝试将jar文件重命名为zip,然后尝试替换已修补的文件,但因为我只获得了java文件,所以我无法用类文件替换它。所以我放弃了这个想法。
这是我尝试过的。我反编译了solr 4.2包中的原始jar solr-dataimporthandler-4.2.0.jar。然后我替换补丁文件。并尝试编译文件再次制作jar。但是我开始收到编译错误。
。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:')'预期
/ * 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:expected / 432 / if(XPathEntityProcessor) .2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:not statem ent / 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:表达式的非法星号/ 432 * / if(XPathEntityProcessor.2.this.val $ isEnd.get() ){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:';'预期
/ * 432 * / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:';'预期
/ * 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:398:not statem ent / 433 * / XPathEntityProcessor.2.this.val $ throwExp.set(false); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:398:';'预期
/ * 433 / XPathEntityProcessor.2.this.val $ throwExp.set(false); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:406:not statem ent / 442 * / XPathEntityProcessor.2.this.val $ isEnd.set(true); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:406:';'预期
/ * 442 / XPathEntityProcessor.2.this.val $ isEnd.set(true); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:409:不是statem ent / 445 * / XPathEntityProcessor.2.this.offer(row); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:409:';'预期
/ * 445 * / XPathEntityProcessor.2.this.offer(row); ^ 12错误
知道如何为此问题修补Solr4.2。
答案 0 :(得分:0)
This issue已于一年多前(2012年5月)在Solr 3.6.1中修复并关闭。
这意味着该修复程序应该已在4.2中提供。您不再需要应用此修补程序。
编辑-1
我将SOLR-3336中附带的SolrEntityProcessor.java
文件与3.6和trunk分支进行了比较。除了清理打印语句之外,我看不出任何区别。这是因为补丁已经提交到3.6以后。
如果您认为仍然存在问题,则可能不是此问题中解决的问题,这可能意味着使用此文件进行修补不会对您有所帮助。欢迎您继续进行此练习,但我建议您确保自己正常(通过与Solr Devs合作)。我觉得你可能正在考虑另一个问题,如果有的话。