2014-03-03 78 views
2

我現在用的是鳥巢客戶查詢ElasticSearch,並根據參數創建使用switch語句ElasticSearch鳥巢客戶端初始化成果VAR

switch (parameter) 
{ 
    case 1: 
    var results = this.ConnectedClient.Search<ElasticSearchProject>(... 
    break; 
    case 2: 
    var results = this.ConnectedClient.Search<ElasticSearchProject>(... 
    break; 
} 

不同的查詢當我嘗試處理case語句外,結果我不能因爲結果變量不存在於此上下文中。

我試圖宣佈結果var特大案件,但它必須進行初始化。

我該如何制定解決方案。

回答

1

在這種情況下,我使用SearchDescriptor類,並設置所需的搜索設置並將其傳遞給我的Search方法調用。

所以爲你的例子。

var searchDescriptor = new SearchDescriptor<ElasticSearchProject>(); 
//You can also set options here like Types, Indexes, Fields, Rows, Start 

switch (parameter) 
{ 
    case 1: 
     //Set parameter 1 specific search options here... 
     searchDescriptor.Query(... 
     break; 
    case 2: 
     //Set parameter 2 specific search options here... 
     searchDescriptor.Query(... 
     break; 
} 

var results = this.ConnectdClient.Search<ElasticSearchProject>(searchDescriptor); 
+0

非常感謝。它正是我想要的。 –