ElasticSearch Nest Client初始化结果var

时间:2014-03-03 15:51:48

标签: elasticsearch nest

我使用Nest客户端查询ElasticSearch,并根据参数使用switch语句创建不同的查询

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

当我尝试在case语句之外处理结果时,我不能,因为结果var在此上下文中不存在。

我试图宣布结果var超出案例但必须初始化。

我如何制定解决方案。

1 个答案:

答案 0 :(得分: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);