我正在我的说唱网站上实现全文搜索功能,但在歌手和歌曲名称方面遇到了一些问题。
例如,有人可能想使用查询词“camron”(省略中间的撇号)搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询词“3peat”搜索歌曲“3 Peat”。
"
例如,有人可能想使用查询词“camron”(省略中间的撇号)搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询词“3peat”搜索歌曲“3 Peat”。
"
“臭名昭著的B.I.G.”是一个有点奇怪的情况:“The Notorious BIG”和“The Notorious B.I.G.”都可以使用(我猜是因为solr.StandardFilterFactory从缩写中删除了句点?),但是没有尾随句点的“The Notorious B.I.G”(即减去尾随句点)不能使用。
理想情况下,这些名称的所有合理变体都应该可用。我猜答案与solr.WordDelimiterFilterFactory有关,但我不确定。
此外,如果相关的话,我正在使用Rails的Sunspot。
"
schema.xml
文件中:<filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="1" splitOnNumerics="1" splitOnCaseChange="1" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
。这似乎解决了除“B.I.G”之外的所有问题。您有什么想法吗? - Tom Lehman