我正在使用SOLR作为数据库,并且必须从数据库中删除所有记录(UUID:'a7d37405-fd5b-44de-b4bc-e748e9353f5d'和名称:'Murtaza')。我可以仅使用1个字段将其删除,但不允许我使用2个where子句删除。有什么办法吗?
我正在使用以下代码:
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);
});
答案 0 :(得分:1)
内置的delete
函数仅允许将1字段+值作为参数,但是您可以使用deleteByQuery
选项:
http://lbdremy.github.io/solr-node-client/code/deleteByQuery.js.html
并使查询成为对两个字段的条件搜索:
var query = "UUID:'abcd-1234' AND name:Murtaza";
答案 1 :(得分:1)
我终于找到了解决方案!我们必须使用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);;
}
});