Xunsearch:添加数据时报错,引擎关闭

当我们同步数据到xunsearch中时,由于一次性将所有数据查询出来比较大,添加到一部分,xunsearch莫名其妙断开关闭。查询了原因也没找到问题,后来经过多次添加,才发现由于同步数据立即传送到服务器过多过快,导致负荷严重,断开连接,查看xunsearh文档我们可以使用索引缓冲区 来避免这种异常:

对于大量索引更新操作时,请使用以下方式开启缓冲区进行操作,缓冲区的默认 大小为 4MB,如需修改请传入数字作为 XSIndex::openBuffer 的参数。

 public static function save($data,$file = 'demo',$tag = 'add'){
        try {
            $xs = new XS($file);
            $xindex = $xs->index;
            // 开启缓冲区
            $xindex->openBuffer(); 
            // $xindex->setTokenizer(new XSTokenizerScws);
            
            foreach ($data as $index => $value ){
                $doc = new XSDocument;
                $doc->setFields($value);
                if ($tag == 'add'){
                    $xindex->add($doc);
                }elseif ($tag == 'update'){
                    $xindex->update($doc);
                }else{
                    $xindex->del($tag);
                }
            }
            // 关闭缓冲区
            $xindex->closeBuffer();
            // 强制刷新当前索引列表数据
            return $xindex->flushIndex();
        }catch (Exception $e){
            echo "异常 >> " . $e;
            return false;
        }
    }

然后我们在批量添加就不会出现异常

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值