java - solr trier par ordre alphabétique pinyin
黄舟
黄舟 2017-05-17 10:02:57
0
2
836

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 ? ? ?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(2)
黄舟

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

.
淡淡烟草味

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal