我只是按照示例on this page进行操作,关于如何使用Perl Solr扩展从数据库添加多个文档。
示例代码:
$users = $dbh->prepare($sql);
$users->execute();
$result = $users->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $k=>$r){
$docs_array[$k] = new SolrInputDocument();
$docs_array[$k]->addField('model_id', $r['model_id']);
$docs_array[$k]->addField('name', $r['name']);
}
$updateResponse = $client->addDocument($docs_array);
它不起作用并给出以下错误:
Argument 1 passed to SolrClient::addDocument() must be an instance of SolrInputDocument, array given
因此,我想使这项工作唯一的方法是在每个循环中一个接一个地添加文档,如下所示:
foreach($result as $k=>$r){
$doc = new SolrInputDocument();
$doc->addField('model_id', $r['model_id']);
$doc->addField('name', $r['name']);
$updateResponse = $client->addDocument($doc);
}
由于此扩展程序上没有足够的文档,因此我想确定这是否是适当的方法。谢谢。
最佳答案
您在调用addDocument->s<-
时链接到addDocument
的文档(末尾没有复数s)。
使用正确的方法(addDocuments
),文档将是正确的。