Что вы ищете, так это поиск по предложениям. И да, это возможно в Sitecore!
Прежде всего, вам необходимо настроить Предложение компонента на Solr. Если вы перейдете по ссылке, вы увидите, что есть довольно много вариантов, которые вы можете настроить. Поиск в Улучшение опыта поиска с Solr Suggester может быть полезным для вас.
Тогда вам просто нужно использовать, если:
SitecoreIndexableItem rootItem = Context.Database.GetRootItem();
ISearchIndex index = ContentSearchManager.GetIndex(rootItem); //of course you can resolve index in different way or just pick one you are interested in
using (var context = index.CreateSearchContext())
{
SolrSuggestQuery query = model.Term;
SolrSuggestHandlerQueryResults result;
SuggestHandlerQueryOptions options = new SuggestHandlerQueryOptions
{
Parameters = new SuggestParameters
{
Count = 5
}
};
using (queryTimer = new Timer())
{
result = context.Suggest(query, options);
}
return result.Suggestions["NAME_OF_YOUR_SUGGESTER"].Suggestions.Select(a => new Suggestion { Term = a.Term, Payload = a.Payload});
}
Suggestion
класс, используемый здесь new Suggestion { Term = a.Term, Payload = a.Payload}
- это пользовательский класс (не предоставляется Sitecore). Вы можете использовать свой собственный.
Важно! Поиск предложений возможен только в Sitecore 9 (и выше) и при использовании Solr.