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");
}

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

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 применяет дополнительные выражения фильтра к вашему запросу.

Другие вопросы по тегам