Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 建议查询需要很长时间_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 建议查询需要很长时间

C# 建议查询需要很长时间,c#,elasticsearch,nest,C#,elasticsearch,Nest,我正在使用NEST(c#)客户端与Elasticsearch进行通信。我正在使用suggest API在我的站点中实现自动完成,这是我的查询代码示例 var completionResult = client.Search( body => body .Type("myProject") .Size(5) .Fields("title","

我正在使用NEST(c#)客户端与Elasticsearch进行通信。我正在使用suggest API在我的站点中实现自动完成,这是我的查询代码示例

var completionResult = client.Search(
                body => body
                    .Type("myProject")
                    .Size(5)
                    .Fields("title","tags","control","platform")
                    .SuggestGlobalText(searchText)
                    .SuggestCompletion("SuggestCompletionResult", sfc => sfc
                        .OnField("control.suggestControl"))
                    .SuggestPhrase("SuggestPhraseResult", sfp => sfp
                        .OnField("control.suggestControl"))
                        );
我需要以
List
的形式获得最终结果,我的建议列表类是

 public class SuggestionList
{
    public string Text { get; set; }
}
我执行的将结果转换为
List
的操作是

    List<SuggestionList> SuggestResultSet = new List<SuggestionList>();     

            if (completionResult != null)
            {
                if (completionResult.Suggest != null && completionResult.Suggest.Count > 0)
                {
                    var suggestionList = completionResult.Suggest.ToList();

                    if (suggestionList != null && suggestionList.Count > 0)
                    {
                        if (suggestionList[0].Value.ToList().Count() != 0 && suggestionList[0].Value.ToList()[0].Options.ToList().Count > 0)
                        {
                            foreach (var text in suggestionList[0].Value.ToList()[0].Options.ToList())
                            {
                                SuggestResultSet.Add(new SuggestionList { Text = text.Text });
                            }
                        }
                        if (suggestionList[1].Value.ToList().Count() != 0 && suggestionList[1].Value.ToList()[0].Options.ToList().Count > 0)
                        {
                            foreach (var text in suggestionList[1].Value.ToList()[0].Options.ToList())
                            {
                                SuggestResultSet.Add(new SuggestionList { Text = text.Text });
                            }
                        }

                    }
                }
            }
List SuggestResultSet=new List();
if(completionResult!=null)
{
if(completionResult.Suggest!=null&&completionResult.Suggest.Count>0)
{
var suggestionList=completionResult.Suggest.ToList();
if(suggestionList!=null&&suggestionList.Count>0)
{
如果(suggestionList[0].Value.ToList().Count()!=0&&suggestionList[0].Value.ToList()[0].Options.ToList().Count>0)
{
foreach(suggestionList[0]中的变量文本)。Value.ToList()[0]。Options.ToList())
{
添加(新的SuggestionList{Text=Text.Text});
}
}
如果(suggestionList[1].Value.ToList().Count()!=0&&suggestionList[1].Value.ToList()[0].Options.ToList().Count>0)
{
foreach(suggestionList[1]中的变量文本)。Value.ToList()[0]。Options.ToList())
{
添加(新的SuggestionList{Text=Text.Text});
}
}
}
}
}

获得最终结果需要更长的时间,是否有任何方法可以在不影响性能的情况下实现此目标

我认为您的转换过程过于复杂,嵌套很高。记住,这不是编译的,只是伪的

List<SuggestionList> SuggestResultSet = new List<SuggestionList>();
if(completionResults != null)
{
    foreach(var suggestion in completionResults.Suggest)
    {
        SuggestsResultSet.Add(new SuggestionList {Text = suggestion.Text });
    }
}
List SuggestResultSet=new List();
if(completionResults!=null)
{
foreach(completionResults.Suggest中的var建议)
{
SuggestResultSet.Add(新建SuggestionList{Text=suggestion.Text});
}
}