Separați numerele de litere din Lucene

În multe documente pe care le indexez cu Lucene, oamenii conjuc accidental cuvintele cu cifre. De exemplu, se poate spune: "M-am născut în 2000", în loc de "M-am născut în 2000".

Există vreun tokenizor Lucene care poate separa cuvinte cu numere (de ex. In2000 și) în câteva cuvinte (de ex., În 2000 și)?

0

2 răspunsuri

Nu folosesc Solr. Așa că am descărcat WordDelimiterFilter și WordDelimiterIterator de la Solr., Și am adăugat acest cod la analizorul meu personalizat:



    final Tokenizer source = new StandardTokenizer(matchVersion, reader);
    TokenStream result = new StandardFilter(matchVersion, source);
    int flags = WordDelimiterFilter.SPLIT_ON_NUMERICS
                | WordDelimiterFilter.GENERATE_NUMBER_PARTS
                | WordDelimiterFilter.GENERATE_WORD_PARTS;
    result = new WordDelimiterFilter(result, flags, null);

0
adăugat
Ne pare rău, a fost accidental!
adăugat autor mossaab, sursa
De ce nu ați acceptat răspunsul meu și ați acceptat pe a voastră?
adăugat autor Marko Bonaci, sursa

Puteți utiliza WordDelimiterFilterFactory și adăugați splitOnNumerics = 1 param la schema dvs.

0
adăugat
Nu folosesc Solr. Așa că am descărcat WordDelimiterFilter și WordDelimiterIterator de la Solr.
adăugat autor mossaab, sursa