代码之家  ›  专栏  ›  技术社区  ›  Salines

Solr,按多个id批量删除

  •  1
  • Salines  · 技术社区  · 8 年前

    工作流程:

    远程源 -&燃气轮机; 使用所有过期记录ID向SOLR发送请求 &燃气轮机;将新记录推送到Solr。

    通过多个ID删除文档的正确查询语法是什么?

    id:(1 OR 2 OR 3)...
    id:(1 AND 2 AND 3)
    

    在php中:

    $query = sprintf('id:(%s)', implode(' AND ', $toDelete));
    
    $solrUrl = sprintf('http://%s:%s/%s/%s', $this->solr['host'], $this->solr['port'], $this->solr['path'], $action);
            $docs = [
                'delete' => ['query' => $query]
            ];
            $http = new Client();
            $http->post($solrUrl, json_encode($docs),['type' => 'json', 'timeout' => 30]);
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   Pradeepan    8 年前

    线索是简单地将delete请求重写为deleteby查询,然后将所有要删除的id作为简单的OR查询提交。不用说,这已经足够快了,解决了我们的问题。

    总结起来,;将delete by查询语句编写为:

    推荐文章