Pregunta

Estoy teniendo un problema con la creación de bandas puntuacion del índice Solr Cuando el seguimiento a la muestra correcta puntuacion después de una palabra a continuación, esta palabra no está indexado correctamente.

Por ejemplo:. Si el índice "hola, John", el activo no se encontrará por palabras clave "hola", mientras que no habrá ningún problema si eliminamos coma después de la palabra "hola"

¿Hay alguna FilterFactory que suponen a la tira de puntuacion? Algunas ideas?

Gracias, Bogdan.

No hay solución correcta

Otros consejos

Puede utilizar el solr.PatternReplaceFilterFactory para despojar a partir de puntuacion y trasero con esto:

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

Y si se quería despojar a todos los puntuacion al principio y al final, con la excepción (por ejemplo) el signo de dólar en frente de una palabra, se puede usar esto:

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

Esto se hace con el WordDelimiterFilterFactory. Set generateWordParts = 1.

No es también el PatternTokenizerFactory que podría ser utilizado, pero nunca he probado.

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

...     

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top