在Sunspot中,不区分大小写地按字母顺序排序结果。

3
1个回答

1

我在SO上寻找类似的答案,但没有找到。然而,我偶然发现了这段神奇的代码:string(:sort_title) { title.downcase }
现在稍微解释一下。Solr(sunspot)不允许您按文本类型排序/排序,字符串类型无法进行大小写不敏感的排序。因此,我想到了以下解决方案。假设您有一个字段field1,希望使用大小写不敏感的排序进行排序。然后,在可搜索部分的索引中创建另一个字段,我们称之为field2,其值为field1.downcase。然后按field2排序并检索结果。这样,您可以保留大小写类型(在field1中,使数据易于正确显示),并通过field2进行大小写排序。它应该看起来像这样:

class Test < ActiveRecord::Base
  searchable do
    string(:field1) { your_class_field }
    string(:field2) { your_class_field.downcase(same as above) }
  end
end

答案对你来说来晚了一点,但也许其他人会从中受益!

不,对我来说还不算晚,我想要修复的错误一直存在那么长时间。>_< - Andrew Grimm
1
希望它能对你有所帮助 :D - Lucian Tarna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接