0

根据SolrEntityProcessor 只为子实体调用一次,我们可以在 https://issues.apache.org/jira/browse/SOLR-3336?page=com.atlassian.jira.plugin.system.issuetabpanels 中使用修补过的 SolrEntityProcessor : comment-tabpanel解决子实体问题。

我尝试将 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: 预期 / 432 / if (XPathEntityProcessor.2. this.val$isEnd.get()) { ^ .\org\apache\solr\handler\dataimport\XPathEntityProcessor.java:397: not a statement / 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 a statement / 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: 不是语句 / 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: 不是声明 / 445 */ XPathEntityProcessor.2.this.offer(row); ^ .\org\apache\solr\handler\dataimport\XPathEntityProcessor.java:409: ';' 预期的

/* 445 */ XPathEntityProcessor.2.this.offer(row); ^ 12 个错误

知道如何针对此问题修补 Solr4.2。

4

1 回答 1

0

您提到的这个问题已在一年多前(2012 年 5 月)在 Solr 3.6.1 中修复并关闭。

这意味着该修复程序应该已经在 4.2 中可用。您不再需要应用此补丁。

编辑-1

我将SOLR-3336SolrEntityProcessor.java中附加的文件与3.6主干分支进行了比较。除了清理打印语句之外,我看不出任何区别。这是因为补丁已经提交到 3.6 以后。

如果您认为仍然存在问题,则可能不是此问题中解决的问题,这可能意味着使用此文件进行修补对您没有帮助。欢迎您继续进行此练习,但我建议确保您步入正轨(通过与 Solr 开发人员合作)。我有一种感觉,如果有的话,你可能正在研究一个不同的问题。

于 2013-08-15T04:55:52.243 回答