我有一个索引正在生成完全正常(可以浏览所有创建的项目通过卢克)。在Luke中做了一个查询,甚至设法返回结果 - 在C#中的下面的代码中实现,但不返回。有什么明显的,我失踪了。Lucene在Sitecore中搜索;没有结果返回
totalResults = 0;
using (var context = ContentSearchManager.GetIndex("custom_search_index").CreateSearchContext())
{
var filterPredicate = PredicateBuilder.True<SearchItem>();
var termPredicate = PredicateBuilder.False<SearchItem>();
termPredicate = termPredicate
.Or(p => p.Name.Like(keyword, 0.75f)).Boost(2.0f)
.Or(p => p.Excerpt.Like(keyword))
.Or(p => p.SearchTags.Like(keyword))
.Or(p => p.HtmlContent.Like(keyword));
var predicate = filterPredicate.And(termPredicate);
var query = context.GetQueryable<SearchItem>().Where(predicate);
var results = query.Page(page, itemsPerPage).GetResults();
totalResults = results.TotalSearchResults;
var result = results.Hits.Select(h => GetPage(h.Document)).ToArray();
return result;
}
在Search.Log
,我发现了以下打
ExecuteQueryAgainstLucene(custom_search_index):_name:20世纪80年代〜0.75摘录:1980 searchtags:20世纪80年代htmlcontent:1980 - 过滤器:
如果我在卢克运行'_name:1980s〜0.75节选:20世纪80年代searchtags:20世纪80年代htmlcontent:20世纪80年代',我确实得到了一个结果!
可以肯定的是,您是否在相同的自定义索引上使用了Luke,即'custom_search_index'? 'totalResults'也是0,'GetPage()'函数返回什么? –
是在两个实例中使用相同的索引。 GetPage()将项目映射到Sitecore项目以获取更多详细信息。 – Daniel
问题只与'80年代'有关吗?你尝试过使用字母查询吗? –