[英]Suggestion query taking long time
我正在使用NEST(c#)客戶端與Elasticsearch通信。 我正在使用建議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<SuggestionList>
而我的建議列表類是
public class SuggestionList
{
public string Text { get; set; }
}
我執行的將結果轉換為List<SuggestionList>
是
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<SuggestionList> SuggestResultSet = new List<SuggestionList>();
if(completionResults != null)
{
foreach(var suggestion in completionResults.Suggest)
{
SuggestsResultSet.Add(new SuggestionList {Text = suggestion.Text });
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.