有一个看DictionaryCompoundWordTokenFilter
作为在Solr的说明
该过滤器使用组成词的词典将复合词拆分或分解为单个词。每个输入令牌均不变地传递。如果还可以将其分解为子字,则每个子字也将在同一逻辑位置添加到流中。
在:“ Donaudampfschiff dummkopf”中
要过滤的令牌生成器:“ Donaudampfschiff”(1),“ dummkopf”(2),
输出:“ Donaudampfschiff”(1),“ Donau”(1),“ dampf”(1),“ schiff”(1),“ dummkopf”(2),“ dumm”(2),“ kopf”(2)
如您在示例配置中看到的,您将需要使用您想要拆分的语言的字典,在示例中,他们使用germanwords.txt
,其中包含要分解的单词(如果找到的话)。在您的情况下,这将是love
和live
。
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="germanwords.txt"/>
</analyzer>
对于Lucene来说org.apache.lucene.analysis.compound.DictionaryCompoundWordTokenFilter
。该代码可在github上找到。