我正在 my rap website 上实现全文搜索功能,我遇到了一些关于说唱歌手和歌曲名称的问题。
例如,某人可能想使用查询“camron”(省略中间单词撇号)来搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询“3peat”来搜索歌曲“3 Peat”。
“The Notorious B.I.G.”有点奇怪:“The Notorious BIG”和“The Notorious B.I.G.”两者都有效(我猜是因为 solr.StandardFilterFactory 从首字母缩略词中删除了点?),但“The Notorious B.I.G”(即减去结尾的点)没有。
理想情况下,这些名称的所有合理变体都应该有效。我猜答案与 solr.WordDelimiterFilterFactory 有关,但我不确定。
此外,如果相关的话,我正在将 Sunspot 与 Rails 结合使用。
最佳答案
是的,你是对的。您需要正确配置 WordDelimiterFilterFactory。尝试启用所有属性,不要忘记启用 preserveOriginal 属性,这也会保存您的原始条款。
generateWordparts - 将从 B.I.G. 术语生成 - B I G
generateNumberParts - 将根据 3Peat 条件生成 - 3 Peat
catenateWords - 将根据 B.I.G. 条款 - BIG
catenateNumbers - 将根据 Rapper 802.11 条款制作 - Rapper 80211
catenateAll - 将从 Rapper-802.11 学期开始 - Rapper80211
splitOnCaseChange - 将根据 GanGsTa 项生成 - Gan Gs Ta
preserveOriginal - 也将保存原始术语。 Rapper-802.11RuuLlZ 将制作 - Rapper-802.11RuuLlZ。
关于ruby-on-rails - 用 Solr 全文搜索不规则的说唱歌手名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894821/