首頁  >  問答  >  主體

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

有個標題字段,想按照拼音首字母排序,在solr方法裡有一個方法

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

但這樣設定好像結果不是我想要的,我想要的結果如下:
序號標題首字母
1 阿a
2 國g
3 人r
4 中z

在sql語句裡能依照拼音首字母排序,我想知道在solr裡能依照拼音首字母排序麼?要怎麼做,求指導? ? ?

黄舟黄舟2712 天前799

全部回覆(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
  • 取消回覆