2014-05-19 30 views
4

我正在尝试配置Lucene/Solr以正确索引来自新闻文章的单词。由于目前是“开箱即用”使用Solr 3.4 WordDelimitedFilterFactory指标: 在Solr中用撇号的单词进行适当的单词拆分

,但她会在“她”会成为她,LL,她和外壳。我绝对不希望这匹配“壳”。这不是预期的词。

目前我的文字会突破WhitespaceTokenizerFactory,然后StopFilterFactory,然后WodDelimiterFilterFactory设置为: generateWordParts = “1” generateNumberParts = “1” catenateWords = “1” catenateNumbers = “1” catenateAll = “0” splitOnCaseChange = “0” splitOnNumerics = “0” preserveOriginal = “1” 类型= “specialtypes.txt”

我试图说撇号被认为是在specialtypes.txt字母字符说: ' => ALPHA
但随后她变成了一个词,小马和公司也是如此,这不是我想要的。

任何想法?

+0

在这种情况下你期望什么:斯嘉丽奥哈拉? – notdang

+0

我想要虫子来bug和阿诺德成为阿诺德(英文占有欲),但我想她会成为她而不是壳 – Uberbug

+0

对不起@notdang我误读了。我希望Scarlet O'Hara成为完美世界的Ohara – Uberbug

回答

1

尝试使用保护=“protwords.txt”作为solr.WordDelimiterFilterFactory过滤器设置的一部分:https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory

您可以添加的话,将有可能引起分裂的问题上撇号(像她很快,他会的,我们会的,我们)。这将在没有任何进一步的标记或过滤的情况下对它们进行索引,同时继续将单词放在撇号上以用于所有格和其他用途。

+1

这个工作!起初我很困惑,因为我在solr.KeywordMarkerFilterFactory中保护了=“protwords.txt”,这没有帮助。它需要在solr.WordDelimiterFilterFactory部分专门调用。 – Uberbug

2

添加

solr.ApostropheFilterFactory

根据文档:

条所有字符的撇号(包括撇号 本身)之后。

示例:“Türkiye'de”,“2003'te”==>“Türkiye”,“2003”。

+0

这不适合我想要的东西,因为我不想让她成为她,我希望它保持她在这种情况下的身份。但我希望Bug成为Bug,保留WhitespaceTokenizerFactory中Lucene的英文占有过滤器的工作原理 – Uberbug

+0

也似乎solr.ApostropheFilterFactory直到4.8 – Uberbug