Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Cassandra可以为特定的人类语言对列进行排序吗?_Sorting_Cassandra_Human Language - Fatal编程技术网

Sorting Cassandra可以为特定的人类语言对列进行排序吗?

Sorting Cassandra可以为特定的人类语言对列进行排序吗?,sorting,cassandra,human-language,Sorting,Cassandra,Human Language,在Cassandra表中对一行中的列进行排序时,我们似乎只限于四种不同的数据类型。我能看到的四种类型是: BytesType、AsciiType、UTF8Type、IntegerType 但是,要在给定的语言中正确排序,可以使用strcoll(),它利用区域设置并最终根据语言将某些字符排序在其他字符之前或之后 例如,在法语中,e字符上有重音符号,其排序如下: 。。。déèèf 我可以想象,UTF8Type不会像法语使用者预期的那样使该功能正常工作 只有这样才能让它发挥作用,才能真正在卡桑德拉实现

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

BytesType、AsciiType、UTF8Type、IntegerType

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

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

。。。déèèf

我可以想象,
UTF8Type
不会像法语使用者预期的那样使该功能正常工作


只有这样才能让它发挥作用,才能真正在卡桑德拉实现我们自己的排序?(啊,我不喜欢Java…)

您可以始终将区域设置设置为常量,以便始终获得相同的结果。或者,您可以按Unicode编号排序,而不是Java的区域设置感知算法。

您可以始终将区域设置设置为常量,以便始终获得相同的结果。或者,您可以按Unicode编号排序,而不是Java的区域设置感知算法。

据我所知,Unicode将与已经提供的UTF8相同。。。但这不会使用特定于语言的规则进行排序。此外,我无法修复区域设置,因为我的网站支持多种不同的语言,而不仅仅是法语。。。(虽然法语和英语在法语环境下可以很好地使用,但德语和西班牙语对元音和尖锐口音有不同的规定…)对不起,我想我误解了你的帖子。那么您想根据区域设置得到不同的结果吗?我的印象是你想要一致的结果。我想要正确的结果,这取决于特定于该表的区域设置。换句话说,我想要一个英语表、一个法语表、一个德语表和一个西班牙语表(例如,所有语言都可以表示),结果排序应该与该表中的语言环境相匹配。这样我就可以有人类语言特定的索引。据我所知,Unicode将与已经提供的UTF8相同。。。但这不会使用特定于语言的规则进行排序。此外,我无法修复区域设置,因为我的网站支持多种不同的语言,而不仅仅是法语。。。(虽然法语和英语在法语环境下可以很好地使用,但德语和西班牙语对元音和尖锐口音有不同的规定…)对不起,我想我误解了你的帖子。那么您想根据区域设置得到不同的结果吗?我的印象是你想要一致的结果。我想要正确的结果,这取决于特定于该表的区域设置。换句话说,我想要一个英语表、一个法语表、一个德语表和一个西班牙语表(例如,所有语言都可以表示),结果排序应该与该表中的语言环境相匹配。这样我就可以拥有人类语言特有的索引。