弹性搜索:带查询的删除操作

时间:2019-01-08 15:02:07

标签: elasticsearch

当我执行此功能时,它不会考虑查询参数 {“ match”:{type:“ local”}},它将删除所有项目。 任何想法? 预先感谢。

delete: function (callback) {


        client.indices.delete({
            index: 'twitter',

            body: {
                query: {"match": {type: "local"}}
            }
        }, function (err, res) {
            if (err)
                console.error(err.message);
            callback();
        });


},

1 个答案:

答案 0 :(得分:0)

client.indices.delete API将始终删除您指定的整个索引,因此任何正文参数都不会对请求产生影响。 您正在寻找的是client.deleteByQuery API方法,该方法可让您指定要对其执行删除索引内元素的查询。

  client.deleteByQuery({
      index: 'twitter',
      body: {
        query: {
          {"match": {type: "local"}}
        }
      }
    }, function (err, res) {
         if (err)
            console.error(err.message);
          callback();
  });