Node.js 通过检查节点JS中的2个字段,从SOLR中删除记录
我使用SOLR作为我的数据库,我必须从数据库中删除所有记录,其中(UUID:'a7d37405-fd5b-44de-b4bc-e748e9353f5d'和名称:'Murtaza')。我可以只使用1个字段来删除它,但不允许使用2个where子句来删除它。有没有办法做到这一点 我正在使用以下代码:Node.js 通过检查节点JS中的2个字段,从SOLR中删除记录,node.js,solr,nosql,Node.js,Solr,Nosql,我使用SOLR作为我的数据库,我必须从数据库中删除所有记录,其中(UUID:'a7d37405-fd5b-44de-b4bc-e748e9353f5d'和名称:'Murtaza')。我可以只使用1个字段来删除它,但不允许使用2个where子句来删除它。有没有办法做到这一点 我正在使用以下代码: var objQuery = {UUID:'a7d37405-fd5b-44de-b4bc-e748e9353f5d'} client.delete(objQuery, function(err, re
var objQuery = {UUID:'a7d37405-fd5b-44de-b4bc-e748e9353f5d'}
client.delete(objQuery, function(err, result) {
if (err) {
console.log(err);
return;
}
client.softCommit();
callback(result.responseHeader);
});
内置的
delete
函数只允许1字段+值作为参数,但您可以使用deleteByQuery
选项:
并使查询成为两个字段的条件搜索:
var query = "UUID:'abcd-1234' AND name:Murtaza";
我终于找到了解决办法!我们必须使用deleteByQuery函数。功能代码为:
var client =solr.createClient(options);
var query = 'UUID:814caeda-5ef1-4ecf-8260-222060d9907c AND toolId:mytoolID';
client.deleteByQuery(query,function(err,obj){
if(err){
console.log(err);
}else{
client.softCommit();
callback(obj.responseHeader);;
}
});
它起作用了。非常感谢,伙计!我将在答案中添加完整的代码!干杯