solr Japanese tokenizer不适用于片假名
solr Japanese tokenizer not working for katakana
我正在使用 solr-6.2.0 和 filedType:text_ja .
我遇到了 JapaneseTokenizer 的问题,它正确地标记了
Dragon Ball Hero
↓
“龙”
“龙珠英雄”
“球”“英雄”
但它未能正确标记龙珠英雄,
龙珠英雄
↓
“龙”
“龙珠英雄”
“舞会英雄”
所以后面的情况下用龙珠搜索是不会命中的。
它也没有将迪士尼乐园分成两个词。
首先,我相当确定它正在按预期工作。研究 Kuromoji morphpological analyzer 的工作原理可能是更好地理解其规则和基本原理的最佳方式。
您可以尝试一些方法。您可以将 JapaneseAnalyzer 置于 EXTENDED
,而不是 SEARCH
模式,这应该会给您显着更宽松的匹配(当然,很可能以引入更多误报为代价):
Analyzer analyzer = new JapaneseAnalyzer(
null,
JapaneseTokenizer.Mode.EXTENDED,
JapaneseAnalyzer.getDefaultStopSet(),
JapaneseAnalyzer.getDefaultStopTags()
);
或者您可以尝试使用 CJKAnalyzer。
(顺便说一句,EnglishAnalyzer 也不会将 "Disneyland" 拆分为两个标记)
我能够使用 lucene-gosen Sen Tokenizer、
并使用自定义规则和单词权重编译 ipadic 词典来解决这个问题。
我正在使用 solr-6.2.0 和 filedType:text_ja .
我遇到了 JapaneseTokenizer 的问题,它正确地标记了
Dragon Ball Hero
↓
“龙”
“龙珠英雄”
“球”“英雄”
但它未能正确标记龙珠英雄,
龙珠英雄
↓
“龙”
“龙珠英雄”
“舞会英雄”
所以后面的情况下用龙珠搜索是不会命中的。
它也没有将迪士尼乐园分成两个词。
首先,我相当确定它正在按预期工作。研究 Kuromoji morphpological analyzer 的工作原理可能是更好地理解其规则和基本原理的最佳方式。
您可以尝试一些方法。您可以将 JapaneseAnalyzer 置于 EXTENDED
,而不是 SEARCH
模式,这应该会给您显着更宽松的匹配(当然,很可能以引入更多误报为代价):
Analyzer analyzer = new JapaneseAnalyzer(
null,
JapaneseTokenizer.Mode.EXTENDED,
JapaneseAnalyzer.getDefaultStopSet(),
JapaneseAnalyzer.getDefaultStopTags()
);
或者您可以尝试使用 CJKAnalyzer。
(顺便说一句,EnglishAnalyzer 也不会将 "Disneyland" 拆分为两个标记)
我能够使用 lucene-gosen Sen Tokenizer、
并使用自定义规则和单词权重编译 ipadic 词典来解决这个问题。