Java - Solr sortiert nach Pinyin in alphabetischer Reihenfolge
黄舟
黄舟 2017-05-17 10:02:57
0
2
839

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

黄舟
黄舟

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

Antworte allen(2)
黄舟

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

淡淡烟草味

有个比较简单的做法,如下:

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage