recherches solr et accents

cancel
Showing results for 
Search instead for 
Did you mean: 
alfer
Member II

recherches solr et accents

Bonjour,

Je n'arrive pas à faire configurer solr pour avoir une recherche qui ne tient pas compte des accents.

J'utilise Alfresco 4.0.d community en UTF-8 sur une CentOS 5.8.

J'ai installé solr depuis la doc du wiki et arrive à naviguer dans l'administration via https://...:8433/solr/alfresco/admin/

Voci le contenu de mon fichier schema.xml :


<?xml version="1.0" encoding="UTF-8"?>
<schema name="alfresco" version="1.0">
   <types>
         <fieldType name="alfrescoDataType" class="org.alfresco.solr.AlfrescoDataType">
         <!– fieldType name="alfrescoDataType" class="solr.TextField" –>
         <analyzer>
            <charFilter class="solr.HTMLStripCharFilterFactory"/>
            <tokenizer class="org.apache.solr.analysis.WhitespaceTokenizerFactory" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="^(\p{Punct}*)(.*?)(\p{Punct}*)$" replacement="$2"/>
            <filter class="solr.LengthFilterFactory" min="1" max="100" />
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.WordDelimiterFilterFactory"
                    splitOnCaseChange="1"
                    splitOnNumerics="1"
                    stemEnglishPossessive="1"
                    generateWordParts="1"
                    generateNumberParts="1"
                    catenateWords="1"
                    catenateNumbers="1"
                    catenateAll="1"
                    preserveOriginal="1"/>
            <filter class="solr.SnowballPorterFilterFactory" language="French" protected="protwords.txt"/>
            <filter class="solr.WordDelimiterFilterFactory"
                    splitOnCaseChange="1"
                    splitOnNumerics="1"
                    stemEnglishPossessive="1"
                    generateWordParts="1"
                    generateNumberParts="1"
                    catenateWords="1"
                    catenateNumbers="1"
                    catenateAll="1"
                    preserveOriginal="1"/>
            <filter class="org.apache.solr.analysis.LowerCaseFilterFactory" />
            <filter class="solr.StopFilterFactory" ignoreCase="1" words="stopwords_fr.txt" enablePositionIncrements="true"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
         </analyzer>
      </fieldType>
   </types>
   <fields>
      <field name="ID" type="alfrescoDataType" indexed="true" omitNorms="true" stored="true" multiValued="true"></field>
      <dynamicField name="*" type="alfrescoDataType" indexed="true" omitNorms="true" stored="true" multiValued="true"></dynamicField>
   </fields>
   <uniqueKey>ID</uniqueKey>
   <defaultSearchField>ID</defaultSearchField>
</schema>

J'y ai rajouté des filtres en vain.

Voici mon fichier dataTypeAnalyzers_fr.properties:
# Data Type Index Analyzers
d_dictionary.datatype.d_text.analyzer=org.apache.lucene.analysis.fr.FrenchAnalyzer
d_dictionary.datatype.d_content.analyzer=org.apache.lucene.analysis.fr.FrenchAnalyzer

Lorsque j'utilise la classe AlfrescoDataType pour le fieldType décrit ci-dessus la tokenisation et la stemisation se fait bien mais les accents sont toujours présents dans les valeurs indexées.

J'ai l'impression que l'intégration d'alfresco à travers la classe AlfrescoDataType ne tiens pas compte de la configuration des filtres de schema.xml.
Lorsque j'utilise la ligne <fieldType name="alfrescoDataType" class="solr.TextField"> j'ai beaucoup d'erreurs dans les logs à la reconstruction des index mais les valeurs indexées le sont sans les accents.

Je pensais pouvoir corriger le problème en utilisant la configuration de solr, mais il y a peut etre autre chose à faire pour que les accents soient filtrés dans l'index ?
2 Replies
calison3
Member II

Re: recherches solr et accents

Bonjour,

J'ai le même problème.

Avez-vous trouver une solution? :?:
bertrandf
Active Member

Re: recherches solr et accents

Bonjour,

Avez-vous essayé avec :
<filter class="solr.ISOLatin1AccentFilterFactory"/>

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ISOLatin1AccentFilterFactory