通过检查Node JS中的2个字段从SOLR删除记录

时间:2018-09-08 07:52:24

标签: 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, result) {
    if (err) {
       console.log(err);
       return;
    }
    client.softCommit();
    callback(result.responseHeader);
 });     

2 个答案:

答案 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);;
    }
 });