【问题标题】:Can Cassandra sort columns for a specific human language?Cassandra 可以对特定人类语言的列进行排序吗?
【发布时间】:2015-10-18 04:14:35
【问题描述】:

当涉及到对 Cassandra 表中的一行中的列进行排序时,我们似乎仅限于四种不同的数据类型。我能看到的四种类型是:

BytesType、AsciiType、UTF8Type、IntegerType

但是,要在给定语言中正确排序,可以使用 strcoll(),它利用区域设置并最终根据语言将某些字符排序在其他字符之前或之后。

例如,在法语中,e 字符上有重音符号,其排序如下:

... d e é ê è ë f ...

我想UTF8Type 不会使该功能像法语使用者一样正常工作。

是让它工作的唯一方法,在 Cassandra 中实际实现我们自己的排序吗? (唉,我不喜欢 Java……)

【问题讨论】:

    标签: sorting cassandra human-language


    【解决方案1】:

    您始终可以将语言环境设置为一个常量,这样您就可以始终获得相同的结果。或者,您可以按 Unicode 编号而不是 Java 的语言环境感知算法对其进行排序。

    【讨论】:

    • 据我所知,Unicode 将与已经提供的 UTF8 相同......但这不会使用特定于语言的规则进行排序。此外,我无法修复语言环境,因为我的网站要支持许多不同的语言,而不仅仅是法语......(虽然法语和英语在法语语言环境下可以正常工作,但德语和西班牙语对变音符号和重音有不同的规则......)
    • 对不起,我想我误解了你的帖子。所以你想根据语言环境得到不同的结果吗?我的印象是你想要一致的结果。
    • 我想要正确的结果,具体取决于该表的特定区域设置。换句话说,我想要一张英语表,一张法语表,一张德语表和一张西班牙语表(例如,所有语言都可以表示。)结果排序应该与该表中的区域设置匹配。这样我就可以拥有特定于人类语言的索引。
    猜你喜欢
    • 1970-01-01
    • 2019-03-10
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2012-06-22
    • 2013-05-11
    相关资源
    最近更新 更多