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