2017-05-08 1 views
0

Je suis nouveau sur solr, je souhaite ajouter un type de champ avec JdbcSynonymFilter et JdbcStopFilter au schéma solr. J'ai ajouté ma source de données même que des instructions dans ce lien: Loading stopwords from Postgresql to Solr6Impossible d'initialiser la classe JdbcSynonymFilterFactory

puis i configuré-schéma géré avec le code ci-dessous:

<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> 

J'ai ajouté solr-jdbc dans le dossier dist, pilote PostgresSQL, BeanUtils et dbUtils à Dossier contrib/jdbc/lib. Puis, je libs inclus dans solrconfig.xml de 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" /> 

j'ai rencontré l'erreur suivante quand je tentais de commencer 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

je vous remercie de votre aide @freedev –

Répondre

1

Je suis l'un des développeur du projet Solr-jdbc, ont essayé d'intégrer notre projet dans la version Solr actuelle 6.5.1 et suivi ces étapes:

  1. zip Télécharger Solr et extraire

  2. Placez votre FieldType dans le fichier schéma géré: ~ /.../ solr-6.5.1// exemple-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>

  1. Ajoutez la ligne suivante à: ~ /.../ solr-6.5.1// exemple-DIH/Solr/Solr/conf/solrconfig.xml

<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-jdbc-2.3.7.jar" />

  1. Compi la libération solr-jdbc déballée: Exécutez "mvn clean install" dans le dossier solr-jdbc-2.3.7

  2. Placez le fichier jar compilé (solr-jdbc-2.3.7/target/solr-jdbc-2.3. 7.jar) dans le dossier ~ /.../ solr-6.5.1/dist/

  3. Exécutez l'exemple Solr DIH "~ /.../ solr-6.5.1/bin/solr -e dih "

maintenant, il n'y a pas noClassDefFound exception. Après cela, vous devez créer une ressource jndi dans votre jetée et tout devrait fonctionner correctement.

Salutations, Tobias