Sphinx中整数上的CRC32整数、Sphinx

由网友(不讨喜)分享简介:我正在尝试使用CRC32随机化Sphinx查询中的结果,该查询已经具有多个嵌套顺序,例如Select CRC32(Field) as Random from Index Order by Premium,Weight(),Random但是,我拥有的唯一字段是reference。它是一个整数,因此通过CRC32随机化为0...

我正在尝试使用CRC32随机化Sphinx查询中的结果,该查询已经具有多个嵌套顺序,例如

Select CRC32(Field) as Random from Index Order by Premium,Weight(),Random

但是,我拥有的唯一字段是reference。它是一个整数,因此通过CRC32随机化为0

名校苏教版语文上册1 6年级期末测试卷火热下载中

我在我的Sphinx配置中选择了它Select...引用as Randomizer...

然后将其指定为字符串,这样我就可以在SELECT中使用它:

sql_field_string = Randomizer

因此它将‘转换’为文本。

然而,当我运行时:

``从按溢价、权重()、随机数排序的索引中选择CRC32(随机器)作为随机`

我在Navicat中收到警报,因为弹出的"3997755376"不是有效的整数值。我不确定这是CRC32限制还是Navicat。

推荐答案

听起来确实像是水猫问题。SPHINX中的CRC32产生一个无符号32位整数。

在内部,狮身人面像将其用作BIGINT

已修复#1643,CRC32()现在在BIGINT上下文中被正确评估为无符号

从2.2.10开始-至少是发行版,这可能会让Navicat感到困惑。

如果您将其存储在一个属性中,无论如何,都可以在索引时执行(使用MySQL处理它!),而不是在查询时执行它。

sql_query = Select id,CRC32(reference) as Randomizer...
sql_uint_string = Randomizer
阅读全文

相关推荐

最新文章