Question

Je suis un problème avec la ponctuation de l'indice striping Solr Lorsque le signe de ponctuation suivi juste après un mot alors ce mot n'est pas indexé correctement.

Par exemple:. Si nous index « bonjour, John », l'actif ne sera pas trouvée par mot-clé « bonjour » alors il n'y aura pas de problème si on enlève virgule après mot « bonjour »

Y at-il FilterFactory que supposé dépouillent la ponctuation? Toutes les idées?

Merci, Bogdan.

Pas de solution correcte

Autres conseils

Vous pouvez utiliser la solr.PatternReplaceFilterFactory pour dépouiller début et ponctuation finale avec ceci:

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^\p{Punct}*(.*?)\p{Punct}*$"
    replacement="$1"/>

Et si vous voulez dépouiller tous les signes de ponctuation au début et à la fin, à l'exception (par exemple) le signe dollar devant un mot, vous pouvez utiliser ceci:

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^[\p{Punct}&&[^$]]*(.*?)\p{Punct}*$"
    replacement="$1"/>

Cela se fait avec l'WordDelimiterFilterFactory. Set generateWordParts = 1.

Il y a aussi PatternTokenizerFactory qui pourrait être utilisé, mais je ne essayé.

Utilisez PatternReplaceFilterFactory                

<!-- remove punctuation -->
    <filter class="solr.PatternReplaceFilterFactory" pattern="^(\p{Punct}*)(.*?)(\p{Punct}*)$" replacement="$2"/>
    <filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>

...     

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top