Frage

Ich bin solr der Facettierung mit und ich habe auf ein Problem stoßen, dass ich hatte gehofft, dass ich bekommen um Filter verwenden könnte.

Im Grunde einige Male ein Name der Stadt zu SOLR kommt durch als

"CAMBRIDGE"

und irgendwann ist es wird kommen durch als

"Cambridge"

Ich wollte einen Filter in Solr verwenden, um die SCREAMING CAPS-Version des Stadtnamens zu stoppen. Es scheint, dass es ein fitler ist der gesamte Text kleingeschrieben zu machen.

<!-- A text field that only sorts out casing for faceting -->
    <fieldType name="text_facet" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

Ich habe mich gefragt, ob jemand einen Filters wußte, die das erste Zeichen eines Wort ignorieren und Klein des Zeichens für den Rest gelten. Z.

  • CAMBRIDGE >> Cambridge
  • Kingston upon Hull >> Kingston Upon Hull

etc

Als Alternative, wenn es einfach, Ihre eigenen Filter zu schreiben .. einige Hilfe, wie das zu tun, würde geschätzt .. Ich bin kein Java Person ..

Danke

War es hilfreich?

Lösung

AFAIK gibt es keine eingebauten Filter so. Wenn Sie es schreiben wollen, finden Sie unter LowerCaseFilterFactory und ToTitleCase .

Andere Tipps

Vielleicht könnten Sie nutzen die solr.PatternReplaceCharFilterFactory machen?

<fieldType name="textCharNorm" class="solr.TextField">
  <analyzer>
    <filter class="solr.LowerCaseFilterFactory"/>
    <charFilter class="solr.PatternReplaceCharFilterFactory"
                pattern="([^\s]{1})([^\s]*)" replaceWith="\U$1\L$2"/>
  </analyzer>
</fieldType>

Beachten Sie, ich habe nicht den Code oder solr.PatternReplaceCharFilterFactory getestet, so dass ich nicht sicher bin, ob es funktioniert. Wenn Sie Ihre eigenen Filter in diesem Handbuch bauen könnte nützlich sein:

http: //robotlibrarian.billdueber. com / Bau-a-solr-Text-Filter-for-Normalisieren-data /

// John

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top