hash在Coreseek 中配置bigint

系统 2294 0
    304        $sphinxapi->SetSelect('id, domain_hash');

304         $sphinxapi->SetConnectTimeout(3);

305         $sphinxapi->SetGroupBy('domain_hash', SPH_GROUPBY_ATTR, '@count desc');

304        foreach($result['matches'] AS $k=>$v)

321             {   

322                 $IDARRAY[$v['attrs']['domain_hash']] = $v['attrs']['@count'];

323                 $total+= $v['attrs']['@count'];

324             }

$sql = "SELECT site_name FROM ** WHERE domain_hash IN(".join(',', array_keys($IDARRAY)).") order by  find_in_set(domain_hash,'".join(',', array_keys($IDARRAY))."') ";

331         $rawDataAll = Yii::app()->db->createCommand($sql)->queryAll();
  


一般 hash 都是 12024309506718423877,64位的,int 类型是不能满足要求了,
[$v['attrs']['domain_hash']其实都是被截断了的有损数据了……
sql_attr_unit =  domain_hash

11.1.17. sql_attr_uint:整数属性

声明无符号整数属性( attribute )。可声明同一类型的多个不同名称的属性,可选项。 仅适用于SQL数据源( mysql ,   pgsql ,   mssql )。

被声明的列的值必须在32位无符号整型可表示的范围内。超出此范围的值也会被接受,但会溢出。例如-1会变成 2^32-1 或者说4,294,967,295。

您可以在属性名后面附加“:BITCOUNT”(见下面的示例)以便指定整型属性的位数。属性小于默认32位(此时称为位域)会有损性能。但它们在外部存储( extern storage )模式下可以节约内存:这些位域被组合成32位的块存储在 .spa 属性数据文件中。如果使用内联存储( inline storage ),则位宽度的设置会被忽略。



需要在 conf 配置中 让hash 字段为 bigint类型
sql_attr_bigint =  domain_hash

11.1.19. sql_attr_bigint:长整型属性

64位整数属性(attribute)声明。多个值(可以同时声明多个属性),可选选项。 仅适用于SQL数据源( mysql ,   pgsql ,   mssql )。 注意,与 sql_attr_uint 不同,这些值是 有符号 的。于版本0.9.9-rc1引入。 


 

hash在Coreseek 中配置bigint


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论