我有一个代码,仅当索引中不存在doc _id时,才需要插入大量数据。 我发现了这样的东西:
do{
let decodeResponse = try JSONDecoder().decode(UserResponse.self, from: data)
print("this is the json\(decodeResponse.user)")
}catch{
print(error)
}
但是此代码将重写所有存储的项目。仅当数据库中不存在文件时,才需要批量插入文件。有人可以告诉我在Ruflin / Elastica库中如何做吗?
答案 0 :(得分:0)
所以我想我有。如果有人需要知道这里的解决方案:
foreach( $items as $item )
{
$doc = new \Elastica\Document( $item->id, ['ico' => $item->id] );
$doc->setType($searchIndex->getType( 'doc' ));
$elasticBulk[] = $doc;
}
$bulk = new \Elastica\Bulk($elastic);
$bulk->addDocuments($elasticBulk, \Elastica\Bulk\Action::OP_TYPE_CREATE);
try
{
$bulk->send();
}
catch( \Elastica\Exception\Bulk\ResponseException $e )
{
}