我正在
my rap website上实现全文搜索功能,而且我遇到了一些关于说唱歌手和歌曲名称的问题.
例如,有人可能想要使用查询“camron”搜索说唱歌手“Cam’ron”(省略中间词撇号).同样,有人可能使用查询“3peat”搜索歌曲“3 Peat”.
“The Notorious B.I.G.”是一个奇怪的案例:“臭名昭着的大”和“臭名昭着的B.I.G.”两者都有效(我猜是因为solr.StandardFilterFactory从首字母缩略词中删除了点?),但是“臭名昭着的B.I.G”(即减去尾随点)却没有.
理想情况下,这些名称的所有合理变体都应该有效我猜这个答案与solr.WordDelimiterFilterFactory有关,但我不确定.
此外,如果相关,我正在使用带有Rails的太阳黑子.
解决方法
是的,你是对的.您需要正确配置WordDelimiterFilterFactory.尝试启用所有属性,不要忘记启用preserveOriginal属性,这也将保存您的原始术语.
generateWordparts – 将来自B.I.G.条款 – B I G
generateNumberParts – 将从3Peat条款 – 3泥炭
catenateWords – 将来自B.I.G.条款 – 大
catenateNumbers – 将使用Rapper 802.11术语 – Rapper 80211
catenateAll – 将使用Rapper-802.11术语 – Rapper80211
splitOnCaseChange – 将来自GanGsTa术语 – Gan Gs Ta
preserveOriginal – 也将保存原始术语.从Rapper-802.11RuuLlZ将制作 – Rapper-802.11RuuLlZ.