2016-04-13 40 views
0

當我試圖像如何在Elasticsearch建立動態查詢,將執行上的Node.js

var my_query = new Object("[{ \"match\": { \"techskills.programming\":"+ programming+" } }]"); 

var deferred = Q.defer(); 
client.search({ 
    "index": _index, 
    "type": _type, 
    "body": { 
     "query": { 
      "bool": { 
       "must": my_query 
      } 
     } 
    } 
},function (error,resp) { 
    console.log("Found error is ::::: "+error + " resp::: "+JSON.stringify(resp)); 
    if(error) deferred.reject(error); 
    deferred.resolve(resp); 
}); 
return deferred.promise; 

創建查詢我收到以下錯誤:

[query_parsing_exception] [bool] query does not support [must]

回答

0

我已經解決了這個通過創建完整的body標籤作爲動態查詢字符串並將此變量傳遞給elasticsearch查詢。 ex: var my_query =「{\」query \「:{\」bool \「:{\」must \「:[{\」match \「:{\」techskills.programming \「:\」「+編程+ 「\」}}]}}}」

client.search({ 「索引」:_index, 「類型」:_type, 體:my_query },功能(錯誤,RESP) {「error found is :::::」+ error +「resp :::」+ JSON.stringify(resp)); if(error)deferred.reject(error); deferred.resolve (resp); });