2017-05-08 134 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

    相關問題