Question

J'utilise le facettage de solr et j'ai rencontré un problème que j'espérais pouvoir se déplacer en utilisant des filtres.

En fait quelques fois un nom de ville viendra jusqu'à SOLR comme

"CAMBRIDGE"

et est parfois ça passe comme

"Cambridge"

Je voulais utiliser un filtre Solr pour arrêter la CRIE CAPS version du nom de la ville. Il semble qu'il y ait un fitler pour faire tout le texte minuscules .

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

Je me demandais si quelqu'un connaissait un filtre qui ignorera le premier caractère d'un mot et d'appliquer en minuscules au reste des personnages. Par exemple.

  • CAMBRIDGE >> Cambridge
  • À HULL >> KINGSTON Kingston Upon Hull

etc

Alternativement, s'il est facile d'écrire vos propres filtres .. un peu d'aide sur la façon de le faire serait apprécié .. Je ne suis pas une personne Java ..

Merci

Était-ce utile?

La solution

AFAIK il n'y a pas de filtre comme intégré qui. Si vous voulez écrire, voir LowerCaseFilterFactory et ToTitleCase .

Autres conseils

Peut-être que vous pourriez utiliser le solr.PatternReplaceCharFilterFactory?

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

Avis, je n'ai pas testé le code ou solr.PatternReplaceCharFilterFactory, donc je ne suis pas sûr si cela fonctionne. Si vous avez besoin pour construire votre propre filtre ce guide pourrait être utile:

http: //robotlibrarian.billdueber. com / bâtiment-a-solr texte-filtre pour-normalisant-data /

// John

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