动态更改elasticsearch查询定义

时间:2017-06-08 22:14:12

标签: node.js elasticsearch

所以我试图从弹性中动态删除特定文档,并且想要使用一个函数而不用硬编码我正在寻找时间范围的项目的名称。请参阅下面的代码:

exports.cleanElastic = function(type, timeReference){
    return new Promise (function (resolve, reject){
        let dataOlderThan = "now-".concat(config.amountOfData);
        elastic.deleteByQuery({
            index: 'canary',
            type: type,
            body: {
                query: {
                    range : {
                        START_TS: {
                            lte: dataOlderThan
                        }
                    }
                }
            }
        },

正如您所见' START_TS'是我在此实例中关注的日期字段的名称。项目并非总是如此。所以我想通过&time; timeReference'或至少它的'查询所在位置的值' START_TS'。任何建议都会非常感激。

谢谢,

赖安

1 个答案:

答案 0 :(得分:0)

我认为您要求的更多是将字符串转换为symbols的javascript。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i" rel="stylesheet">
<div class="success-popup">

  <span class="close-span">x</span>

  <div class="left-pop">

    <i class="fa fa-check" style="font-size:40px;color:white;display: block;margin-left: auto;margin-right: auto"></i>

  </div>
  <div class="right-pop">
    <h4>Success!</h4>
    <p>You successfully read this impoortant alert<br></p>


  </div>
</div>

在rails中,我们使用something之类的内容。

exports.cleanElastic = function(type, timeReference){
    return new Promise (function (resolve, reject){
        let dataOlderThan = "now-".concat(config.amountOfData);
        elastic.deleteByQuery({
            index: 'canary',
            type: type,
            body: {
                query: {
                    range : {
                        toSymbol(timeReference): {
                            lte: dataOlderThan
                        }
                    }
                }
            }
        }
    }
}


function toSymbol(variable) {
  return Symbol(variable);
};