Удалите записи из SOLR, отметив 2 поля в Node JS - PullRequest
0 голосов
/ 08 сентября 2018

Я использую SOLR в качестве базы данных, и мне нужно удалить все записи из базы данных, где (UUID: 'a7d37405-fd5b-44de-b4bc-e748e9353f5d' и имя: 'Murtaza'). Я могу удалить его, используя только 1 поле, но оно не позволяет мне удалить, используя 2, где предложения. Есть ли способ сделать это?

Я использую этот код:

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 голосов
/ 08 сентября 2018

Я наконец нашел решение! Мы должны использовать функцию 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);;
    }
 });
0 голосов
/ 08 сентября 2018

Встроенная функция delete допускает только 1 поле + значение в качестве аргумента, но вы можете использовать опцию deleteByQuery:

http://lbdremy.github.io/solr-node-client/code/deleteByQuery.js.html

И сделать запрос условным поиском по обоим полям:

var query = "UUID:'abcd-1234' AND name:Murtaza";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...