Maison  >  Questions et réponses  >  le corps du texte

java - solr trier par ordre alphabétique pinyin

Il y a un champ de titre et je veux le trier par la première lettre du Pinyin. Il existe une méthode dans la méthode Solr

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

Mais il semble que le résultat de ce paramètre ne soit pas celui que je souhaite. Le résultat que je souhaite est le suivant :
Numéro de série Titre Lettre initiale
1 A a
2 Pays g
3 Personne r
4 Moyen z

Dans les instructions SQL, je peux trier par la première lettre du Pinyin. Je veux savoir si je peux trier par la première lettre du Pinyin dans Solr ? Que dois-je faire ? Puis-je demander des conseils ? ? ?

黄舟黄舟2712 Il y a quelques jours800

répondre à tous(2)je répondrai

  • 黄舟

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

    Vous pouvez simplement créer un nouveau champ avec "la première lettre du titre" comme valeur de champ. De manière générale, dans les applications pratiques, les champs personnalisés sont utilisés comme conditions de tri

    .

    répondre
    0
  • 淡淡烟草味

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

    Il existe une méthode relativement simple, la suivante :

    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);
    

    Résultat

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

    Vous pouvez également utiliser pinyin4j pour un tri plus complexe

    répondre
    0
  • Annulerrépondre