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

标签 ruby-on-rails ruby solr sunspot

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

相关文章:

ruby-on-rails - ruby 中连接字段名称

mysql - Solr 与 MySQL 的自动完成性能对比

java - 手动创建 SolrCrudRepository

ruby - 从地址中删除街道后缀

python - 在 Solr/Python 中处理 facet.pivot 数据

ruby-on-rails - 如何在 Rails 5.x.x 应用程序中以 Zip 格式从 S3 下载多个文件?

ruby-on-rails - EmberJS、Rail 和第三方 OAuth2 登录

ruby-on-rails - 保存图表失败!验证 Graphviz 是否已安装并位于您的路径中,或使用 filetype=dot

ruby-on-rails - 如何在 nginx、passenger 和 redmine 中使用不同的 rails_env

ruby-on-rails - rails 。按数组过滤 Postgres 对象。错误 : malformed array literal