Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 通过检查节点JS中的2个字段,从SOLR中删除记录_Node.js_Solr_Nosql - Fatal编程技术网

Node.js 通过检查节点JS中的2个字段,从SOLR中删除记录

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

我使用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);
 });     

内置的
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);;
    }
 });

它起作用了。非常感谢,伙计!我将在答案中添加完整的代码!干杯