Sitecore 8.1 및 MVC를 사용하여 Solr 검색을 적용했습니다. 여기서는 검색 텍스트 상자에 자동 완성/자동 제안 기능으로 어려움을 겪고 있습니다.Solr 검색 및 자동 스로 잉이 포함 된 Sitecore
문제 : 결과가 예상보다 빨리 나타나지 않습니다. 너무 많은 시간이 걸립니다.
은 한 우리가 무엇을 :
A. 우리는 아래와 같이 cshtml 페이지에서 Ajax 호출을 만들었습니다.
$(document).ready(function() {
$("#SearchQuery").autocomplete({
autoFocus: true,
minLength: 3,
source: function (request, response) {
$.ajax({
type: "POST",
url: "@(Url.Action("SearchSuggestion", "SearchService"))",
dataType: "json",
data: { enteredText: request.term },
success: function (data) {
debugger;
response(data);
}
})
},
messages: {
noResults: "", results: ""
}
});
})
B.이 컨트롤러입니다.
[HttpPost]
public JsonResult SearchSuggestion(string enteredText, int? page)
{
var result = service.GetSearchAutoData(enteredText).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
public List<Search> GetSearchAutoData(string searchText)
{
var searchresult = GetSearchAutoSuggetions(searchText)
.Take(10)
.Select(x => new Search
{
title = x.Document.GetItem().Name,
description = x.Document.GetItem().Fields["Description"].ToString(),
extenstion = x.Document["GetMediaExtension"],
url = (x.Document.GetItem().Paths.IsMediaItem) ? Sitecore.Resources.Media.MediaManager.GetMediaUrl(new MediaItem(x.Document.GetItem())) : x.Document.GetItem().Paths.ContentPath
})
.Where(x => (x.extenstion.ToLower() != "jpeg" && x.extenstion.ToLower() != "jpg" && x.extenstion.ToLower() != "png"));
return searchresult.ToList();
}
그래서 코드를 최적화하고 싶습니까? 아니면 누구든지 이러한 시나리오를 구현할 수 있습니까?
여러 가지 이유가있을 수 있습니다. 먼저이 기능은 무엇을합니까? 'GetSearchAutoSuggetions' –
이 함수는 Sitecore Content search API를 사용하여 검색 결과를 얻는 데 도움이됩니다. 아래 코드는 –
입니다.하지만 성능면에서 병목이 될 코드 일 것입니다. 먼저'IQueryable'을 반환합니까? –