Solr японский токенизатор не работает для катакана
Я использую solr-6.2.0 и filedType: text_ja .
Я столкнулся с проблемой японского токенизатора, его правильного токенизации
ド ラ ゴ ン ボ ー ル ヒ ー ロ ー
↓
"ド ラ ゴ ン" "ド ラ ゴ ン ボ ー ル ヒ ー" "" "ー ル" "ヒ ー ロ ー"
Но это не в состоянии токенизировать ズ, ゴ ン ン ー ル ヒ ー ロ ー ズ ズ
ド ラ ゴ ン ボ ー ル ヒ ー ロ ー ズ
↓
"ド ラ ゴ ン" "ド ラ ゴ ン ボ ー ル ヒ ー" "" "ボ" ル ヒ ー ロ ー ズ "
Следовательно, поиск с помощью ド ラ ゴ ン ボ ー hit в последнем случае не срабатывает.
Кроме того, он не разделяет ド ィズニーランド на два слова.
2 ответа
Я смог решить эту проблему с помощью Lu Toceizer от Lucene-Gosen,
и составление ipadic словаря с пользовательскими правилами и весами слов.
Во-первых, я совершенно уверен, что он работает как задумано. Изучение того, как работает морфологический анализатор Kuromoji, вероятно, было бы лучшим способом лучше понять его правила и обоснование.
Есть несколько вещей, которые вы можете попробовать. Вы можете положить японский анализатор в EXTENDED
, вместо SEARCH
режим, который должен дать вам значительно более слабое соответствие (хотя, скорее всего, за счет введения большего количества ложных срабатываний, конечно):
Analyzer analyzer = new JapaneseAnalyzer(
null,
JapaneseTokenizer.Mode.EXTENDED,
JapaneseAnalyzer.getDefaultStopSet(),
JapaneseAnalyzer.getDefaultStopTags()
);
Или вы можете попробовать использовать CJKAnalyzer.
(Кстати, EnglishAnalyzer также не разделяет "Диснейленд" на два токена)