6

我正在我的说唱网站上实现全文搜索功能,我遇到了一些说唱歌手和歌曲名称的问题。

例如,有人可能想使用查询“camron”(省略中间单词撇号)来搜索说唱歌手“ Cam'ron ”。同样,有人可能会使用查询“3peat”来搜索歌曲“ 3 Peat ”。

The Notorious BIG ” 有点奇怪:“The Notorious BIG” 和 “The Notorious BIG” 都可以工作(我猜是因为solr.StandardFilterFactory从首字母缩写词中删除了点?),但是“The Notorious BIG”(即,减去尾随点)没有。

理想情况下,这些名称的所有合理变体都应该有效。我猜答案与solr.WordDelimiterFilterFactory 有关,但我不确定。

另外,如果相关的话,我正在使用带有 Rails 的 Sunspot。

4

1 回答 1

10

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

generateWordparts - 将由BIG术语 - BIG

generateNumberParts - 将由3Peat条款 - 3 Peat

catenateWords - 将由BIG术语组成 - BIG

catenateNumbers - 将根据Rapper 802.11条款 - Rapper 80211

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

splitOnCaseChange - 将根据GanGsTa条款 - Gan Gs Ta

preserveOriginal - 也将保存原始术语。从Rapper-802.11RuuLlZ将生成 - Rapper-802.11RuuLlZ

于 2010-05-24T08:49:36.717 回答