Получение имен полей из элемента sitecore - PullRequest
0 голосов
/ 09 февраля 2011

Пока я ищу ключевое слово в sitecore, используя sitecore.seach, он возвращает имя элемента (где оно находится) для ключевого слова поиска.Можно ли получить имя поля вдоль элемента?

Я использую следующий код:

using (IndexSearchContext context = searchIndex.CreateSearchContext())
{
   SearchHits hits = context.Search(searchString, new SearchContext(SiteRoot));
   var results = hits.FetchResults(0, 100);

   foreach (SearchResult result in results)
   {
      try
      {
         Item item = result.GetObject<Item>();
         if (item != null)
         {
            results.AddResultToCategory(result, categoryName);
         }
      }
      ...
   }
}

1 Ответ

1 голос
/ 09 февраля 2011

Если я правильно понимаю вашу цель, вы хотите узнать точные поля (имена полей), где была найдена строка поиска, верно?

Если это так, то вы должны получить коллекцию полей элементов (item.Fields) и выполнить итерацию по ней, проверяя строку поиска в значении поля.

Насколько я знаю, приложение оболочки Sitecore Search работает одинаково при отображении результатов: элемент берется из SearchResult, а коллекция полей просто повторяется в поисках попадания с использованием простого сравнения text.IndexOf().

И я не знаю другого способа сделать это.

...