4

私が Lucene で索引付けしている多くの文書では、単語と数字を誤って連結してしまう人がいます。たとえば、「2000 年生まれ」ではなく、「2000 年生まれ」と言うことができます。

数字を含む単語 (in2000and など) を複数の単語 (in 2000 and など) に分割できる Lucene トークナイザーはありますか?

4

2 に答える 2

2

WordDelimiterFilterFactoryを使用して、スキーマに splitOnNumerics=1 パラメータを追加できます。

于 2012-06-05T07:29:09.183 に答える
1

私はSolrを使用していません。そこで、Solr から WordDelimiterFilter と WordDelimiterIterator をダウンロードし、このコードをカスタム アナライザーに追加しました。



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

于 2012-06-05T14:09:54.427 に答える