2017-05-08 161 views
0

我是solr的新手,我想添加一个带JdbcSynonymFilter和JdbcStopFilter的字段类型来solr模式。我加入我的相同的数据源如本链接指令:Loading stopwords from Postgresql to Solr6无法初始化类JdbcSynonymFilterFactory

然后我配置管理型模式与以下代码:

<fieldType name="new_string" class="solr.TextField"> 
    <analyzer> 
     <tokenizer class="solr.PatternTokenizerFactory" pattern="[\s]+" /> 
     <filter class="com.s24.search.solr.analysis.jdbc.JdbcSynonymFilterFactory" 
      sql="SELECT concat(term, '=>', use) as line FROM thesaurus;" 
      dataSource="jdbc/dsTest" ignoreCase="false" expand="true" /> 
     <filter class="com.s24.search.solr.analysis.jdbc.JdbcStopFilterFactory" 
     sql="SELECT stopword FROM stopwords" 
     dataSource="jdbc/dsTest"/> 
    </analyzer> 
    </fieldType> 

我添加的solr-JDBC到dist文件夹,PostgreSQL的驱动器,BeanUtils的和dbutils到contrib/jdbc/lib文件夹。然后,我包括库solrconfig.xml中data_driven_schema_configs的:

<lib dir="${solr.install.dir:../../../..}/contrib/jdbc/lib" regex=".*\.jar" /> 
    <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-jdbc-\d.*\.jar" /> 

我遇到过,当我试图启动SolrCloud下面的错误。

"Could not initialize class com.s24.search.solr.analysis.jdbc.JdbcSynonymFilterFactory,trace=java.lang.NoClassDefFoundError: Could not initialize class com.s24.search.solr.analysis.jdbc.JdbcSynonymFilterFactory"

+0

我感谢您的帮助@freedev –

回答

1

我从Solr的-JDBC项目的开发商之一,试图以我们的项目整合到当前的Solr版本6.5.1,并按照这些步骤:

  1. 下载Solr的拉链,解压

  2. 将您的字段类型为托管模式文件:〜/.../ Solr的-6.5.1 /例子/例子-DIH/Solr的/ Solr的/ conf目录

<fieldType name="new_string" class="solr.TextField"> 
 
    <analyzer> 
 
     <tokenizer class="solr.PatternTokenizerFactory" pattern="[\s]+" /> 
 
     <filter class="com.s24.search.solr.analysis.jdbc.JdbcSynonymFilterFactory" 
 
     sql="SELECT concat(term, '=>', use) as line FROM thesaurus;" 
 
     dataSource="jdbc/dsTest" ignoreCase="false" expand="true" /> 
 
     <filter class="com.s24.search.solr.analysis.jdbc.JdbcStopFilterFactory" 
 
     sql="SELECT stopword FROM stopwords" 
 
     dataSource="jdbc/dsTest"/> 
 
    </analyzer> 
 
</fieldType>

  • 以下行添加到:〜/.../的solr-6.5.1 /示例/实施例-DIH/solr的/ solr的/ CONF/solrconfig.xml中
  • <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-jdbc-2.3.7.jar" />

  • 组合物1文件解压Solr的-JDBC发行:运行 “命令mvn全新安装” 在Solr的-JDBC-2.3.7文件夹

  • 将已编译的jar(Solr的-JDBC-2.3.7 /目标/ Solr的-JDBC-2.3。 7.jar)到〜/.../ solr-6.5.1/dist /文件夹中

  • 运行Solr DIH示例“〜/.../ solr-6.5.1/bin/solr -e dih “

  • 现在没有NoClassDefFound例外。

    之后,你必须在你的码头创建一个jndi资源,一切都应该运行良好。

    Greetings, Tobias

    相关问题