suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Java - Solr sortiert nach Pinyin in alphabetischer Reihenfolge

Es gibt ein Titelfeld und ich möchte es nach dem Anfangsbuchstaben von Pinyin sortieren. Es gibt eine Methode in der Solr-Methode

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

Aber es scheint, dass das Ergebnis dieser Einstellung nicht das ist, was ich will. Das Ergebnis, das ich will, ist wie folgt:
Seriennummer Titel Anfangsbuchstabe
1 A a
2 Land g
3 Person r
4 Medium z

In SQL-Anweisungen kann ich nach dem Anfangsbuchstaben von Pinyin sortieren. Ich möchte wissen, ob ich in Solr nach dem Anfangsbuchstaben von Pinyin sortieren kann. Was soll ich tun? Kann ich um Rat bitten? ? ?

黄舟黄舟2779 Tage vor859

Antworte allen(2)Ich werde antworten

  • 黄舟

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

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

    Antwort
    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来进行更复杂的排序

    Antwort
    0
  • StornierenAntwort