在太阳黑子中以不区分大小写的顺序排序结果

时间:2016-02-24 03:08:51

标签: ruby-on-rails solr sunspot alphabetical

如何使用太阳黑子以字母大小写的顺序排列结果?

我在https://github.com/sunspot/sunspot/wiki/Ordering-and-paginationhttp://wiki.apache.org/solr/FunctionQueryhttps://github.com/sunspot/sunspot#ordering

中找不到任何相关内容

1 个答案:

答案 0 :(得分:1)

我正在寻找一个类似的答案,我还没有找到它。但是我偶然发现了这段神奇的代码:string(:sort_title) { title.downcase } 现在做一点解释。 Solr(太阳黑子)不允许按文本类型排序/排序,字符串类型不区分大小写。因此,我想到了以下解决方案。假设您要使用不区分大小写的排序对字段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

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