使用Solr全文搜索不规则说唱歌手的名字

时间:2010-05-24 05:00:03

标签: ruby-on-rails ruby solr sunspot

我正在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的太阳黑子。

1 个答案:

答案 0 :(得分:10)

是的,你是对的。您需要正确配置WordDelimiterFilterFactory。尝试启用所有属性,不要忘记启用preserveOriginal属性,这也将保存您的原始术语。

generateWordparts - 将来自 B.I.G。条款 - B I G

generateNumberParts - 将来自 3Peat 条款 - 3 Peat

catenateWords - 将来自 B.I.G。条款 - BIG

catenateNumbers - 将来自 Rapper 802.11 条款 - 说唱歌手80211

catenateAll - 将来自 Rapper-802.11 术语 - Rapper80211

splitOnCaseChange - 将来自 GanGsTa 条款 - Gan Gs Ta

preserveOriginal - 也会保存原始字词。从 Rapper-802.11RuuLlZ 将 - Rapper-802.11RuuLlZ