Sitecore 7 ContentSearchManager Нет результатов

Я обновился до Sitecore 7.1 в своей среде разработки и рефакторинг некоторых областей в приложении, которые получали элементы, пытаясь использовать новый ContentSearchManager. Через код или через LinqPad я не получаю результатов, но при отладке с Люком в индексе есть элементы.

Тестовый код, который ничего не возвращает:

var index = ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = index.CreateSearchContext())
{
      context.GetQueryable<SearchResultItem>().Where (item  => item.Name == "Home");
}

Может ли кто-нибудь сказать мне лучший способ отладки и подключения?


person Colema18    schedule 27.12.2013    source источник
comment
Вы получите какие-либо результаты, если удалите фильтр «Где»?   -  person Martin Davies    schedule 27.12.2013


Ответы (1)


Ваш код кажется неполным. Я ожидал увидеть что-то вроде следующего:

public IEnumerable<Item> GetItems()
{
    var index = ContentSearchManager.GetIndex("sitecore_master_index");
    using (var context = index.CreateSearchContext())
    {
        IQueryable<SearchResultItem> query = context.GetQueryable<SearchResultItem>().Where (item  => item.Name == "Home");

        SearchResults<SearchResultItem> results = query.GetResults();

        return results.Hits.Select(hit => hit.Document.GetItem());
    }
}

Если это не удастся, вы сможете увидеть необработанный запрос Lucene при отладке объекта query в Visual Studio. Я бы порекомендовал проверить, соответствует ли запрос запросу, который вы выполняли в Luke. Возможно, API применяет к вашему запросу дополнительные выражения фильтра.

person OptimizedQuery    schedule 26.01.2014