如何用两个单词组合一个没有空格的单词

时间:2014-08-06 06:21:37

标签: solr lucene elasticsearch

我有lovelive这样的词,它由两个简单的单词lovelive组合而成,没有空格。

我想知道哪种Lucene Analyzer可以将这种词分成两个单独的词?

1 个答案:

答案 0 :(得分:4)

DictionaryCompoundWordTokenFilter视为described in the solr reference

  

此过滤器使用组成单词的字典将复合单词拆分或解压缩为单个单词。每个输入令牌都保持不变。如果它也可以被分解为子字,则每个子字也会被添加到同一逻辑位置的流中。

     

In:“Donaudampfschiff dummkopf”

     

要过滤的标记符:“Donaudampfschiff”(1),“dummkopf”(2),

     

Out:“Donaudampfschiff”(1),“Donau”(1),“dampf”(1),“schiff”(1),“dummkopf”(2),“dumm”(2),“kopf” (2)

正如您在示例配置中所看到的,您将需要一个您要分割的语言的字典,在示例中,他们使用germanwords.txt包含他们想要分解的单词(如果找到的话)。在您的情况下,这将是lovelive

<analyzer>
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="germanwords.txt"/>
</analyzer>

对于Lucene,它是org.apache.lucene.analysis.compound.DictionaryCompoundWordTokenFiltercode is to be found on github