簡體   English   中英

動態更改elasticsearch查詢定義

[英]Dynamically change elasticsearch query definition

所以我試圖從彈性動態刪除特定文檔,並希望使用一個函數,而無需硬編碼我正在尋找時間范圍的項目的名稱。請參閱下面的代碼:

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'是我在此實例中關注的日期字段的名稱。 項目並非總是如此。 所以我試圖傳遞'timeReference'或至少它的'值'來查詢'START_TS'的位置。 任何建議將不勝感激。

謝謝,

瑞安

我想你要問的是將字符串轉換為符號的javascript。

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

在軌道,我們使用的東西像下面這個。

key_name = 'age'

hash = {
    name: 'john',
    key_name.to_sym => '23'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM