首页  >  问答  >  正文

java - solr按照拼音首字母排序

有个标题字段,想按照拼音首字母排序,在solr方法里有一个方法

params.setSort("title",ORDER.asc);//排序字段,正序还是倒序

但这样设置好像结果不是我想要的,我想要的结果如下:
序号 标题 首字母
1 阿 a
2 国 g
3 人 r
4 中 z

在sql语句里能按照拼音首字母排序,我想知道在solr里能按照拼音首字母排序么?要怎么做,求指导???

黄舟黄舟2712 天前801

全部回复(2)我来回复

  • 黄舟

    黄舟2017-05-17 10:04:57

    你自己新建立一个以“title首字母“为值的新字段作为field不就行了吗,一般来说实际应用中都以自定义的字段作为排序条件

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-17 10:04:57

    有个比较简单的做法,如下:

    List<String> strs = new ArrayList<>();
    strs.add("中");
    strs.add("啊");
    strs.add("坎");
    strs.add("哈");
    strs.add("少");
    strs.add("发");
    strs.add("顶");
    strs.add("擦");
    strs.add("鹅");
    strs.add("巴");
    
    // 排序
    strs.sort(Collator.getInstance(Locale.CHINA));
    // 打印
    strs.forEach(System.out::println);
    

    结果

    啊 // A
    巴 // B
    擦 // C
    顶 // D
    鹅 // E
    发 // F
    哈 // H
    坎 // K
    少 // S
    中 // Z

    还可以使用pinyin4j来进行更复杂的排序

    回复
    0
  • 取消回复