Maison > Questions et réponses > le corps du texte
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 ? ? ?
黄舟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
.淡淡烟草味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