我目前正在寻找一种在solr中索引复合词和带连字符的词的方法。 如果您想组合单词,德语是一种很棒的语言。您可以组合多个单词或添加连字符以创建一个新单词。这使得配置solr非常困难。我正在寻找一个带有复合词的好的分词器。以下是一些示例:
单词->索引单词(英语翻译)
Ananassaft->菠萝菠萝(菠萝汁)
Bananen-Mango-Quark-> Banane,Mango,Quark(香蕉芒果夸克)
Apfelsaft-Konzentrat-> Apfel,Saft,Konzentrat(苹果汁) 专心)
Bohnenkraut-> Krah Bohne(美味)
Eiersalat-> Ei,Salat(egg salat)
电子邮件-> e,邮件
因此,索引器和搜索应将每个单词分开。换行符为-或电子邮件之类的字词无关紧要。 如您所见,复合词存在一些问题。它们可以是单数(bohne)和复数(bohnen)。 另一个问题是小单词,不应该像ei(egg)这样找到。因此,Scheibe(切片)一词包含鸡蛋,但不应在此处将其编入索引。另一方面,eiersalat(蛋萨拉特)应包含鸡蛋。
当前,我正在使用StandardTokenizer和SnowballPorterFilterFactory。但是它们不适用于复合词和连字符。 我找到了HyphenationCompoundWordTokenFilterFactory,但是到xml的链接似乎坏了。它似乎也适用于XSL-FO。 我想可以将ei(egg)添加到protwords列表中,但是我不确定它是如何工作的。另外,鸡蛋作为复合词仅以复数形式存在,这可能使它变得更容易。