Domanda

Sto avendo un problema con striping punteggiatura dall'indice solr Quando la punteggiatura segno follow destra dopo una parola, allora questa parola non è indicizzato correttamente.

Ad esempio:. Se si indice "ciao, John", l'attività non saremo trovati con parole chiave "ciao", mentre non ci sarà alcun problema se togliamo virgola dopo la parola "ciao"

C'è qualche FilterFactory che supponiamo di spogliare la punteggiatura? Tutte le idee?

Grazie, Bogdan.

Nessuna soluzione corretta

Altri suggerimenti

È possibile utilizzare la solr.PatternReplaceFilterFactory per mettere a nudo inizio e finali la punteggiatura con questo:

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

E se si voleva mettere a nudo tutta la punteggiatura all'inizio e alla fine, tranne che (per esempio) il dollaro-segno di fronte a una parola, è possibile utilizzare questo:

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

Questo viene fatto con l'WordDelimiterFilterFactory. Set generateWordParts = 1.

C'è anche il PatternTokenizerFactory che potrebbe essere utilizzato, ma non ho mai provato.

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

...     

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top