ruby-on-rails – 使用Solr全文搜索不规则的说唱歌手名字

我正在 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.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...