如何通过gradle运行solr 4.4?

时间:2013-09-11 10:37:55

标签: solr groovy lucene gradle

我在运行solr作为gradle任务时遇到了一些麻烦。 https://github.com/fhopf/solr-facet-example/blob/master/build.gradle的示例显示了solr 4.0的运行,但我想通过solr 4.4运行它。我已完成配置

configurations {
    solrWebApp
}
dependencies {
    solrWebApp "org.apache.solr:solr:4.4.0@war"
    testCompile "junit:junit:4.10"
    testCompile "org.apache.solr:solr-test-framework:4.4.0"
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.+'
}
jettyRun.webAppSourceDirectory = file("webapp")
task runSolr(type: JettyRunWar) {
    webApp = configurations.solrWebApp.singleFile
}
//currently this points to solr 4.0 , should be configured to use solr 4.4
runSolr.doFirst {
    System.setProperty("solr.solr.home", "/opt/solr_home")
}

httpPort = 8080
stopPort = 9451

我的solr_home指向拥有lucene版本4.4的核心,但错误消息显示。

Unable to create core: helloworld
org.apache.solr.common.SolrException: Invalid luceneMatchVersion '4.4', valid values are: [LUCENE_30, LUCENE_31, LUCENE_32, LUCENE_33, LUCENE_34, LUCENE_35, LUCENE_36, LUCENE_40, LUCENE_CURRENT] or a string in format 'V.V'
---------------
Caused by: java.lang.IllegalArgumentException: No enum const class org.apache.lucene.util.Version.LUCENE_44
    at java.lang.Enum.valueOf(Enum.java:214)
    at org.apache.lucene.util.Version.valueOf(Version.java:34)
    at org.apache.lucene.util.Version.parseLeniently(Version.java:119)
    at org.apache.solr.core.Config.parseLuceneVersionString(Config.java:311)
    ... 130 more

我的solr home有lucene4.4

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您是否有机会从以前的Solr发行版升级?在这种情况下,您可能有旧文件,例如来自分发中war文件的解压缩webapp目录。您可能需要删除它们,从命令行运行Solr一次,然后重试。