2013-03-30 4 views

Répondre

2

Je ne pense pas que vous pouvez le faire dans StandardTokenizerFactory. Une solution consiste à remplacer les caractères de soulignement par quelque chose que StandardTokenizerFactory ne traitera pas et que vos documents ne contiendront pas. Par exemple, vous pouvez d'abord remplacer _ par QQ partout avec PatternReplaceCharFilterFactory et passer par StandardTokenizerFactory, puis remplacer QQ par _ en utilisant PatternReplaceFilterFactory. Voici la définition de fieldType de le faire:

<fieldType name="text_std_prot" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
     <charFilter class="solr.PatternReplaceCharFilterFactory" 
        pattern="_" 
        replacement="QQ"/> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.PatternReplaceFilterFactory" 
       pattern="QQ" 
       replacement="_"/> 
     ... 
    </analyzer> 
</fieldType> 

Et voici une capture d'écran de ce qui se passe:

Analysis Tool Screenshot

0

Ajout juste après semble faire affaire pour StandardTokenizerFactory comme StandardTokenizerFactory se divise au trait d'union " - ".

<charFilter class="solr.PatternReplaceCharFilterFactory" 
        pattern="_" 
        replacement="-"/> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
Questions connexes