[英]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.