我使用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超出案例但必须初始化。
我如何制定解决方案。
答案 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);