【问题标题】:Exclude folders from search result从搜索结果中排除文件夹
【发布时间】:2014-05-12 06:55:36
【问题描述】:

我正在使用 sitecore 7 Lucene 搜索。当我搜索任何术语时,搜索结果会显示所有文件夹和页面。我可以从搜索结果中排除文件夹吗?我有以下代码可以从索引中搜索文档。

var searcher = Sitecore.ContentSearch.ContentSearchManager.GetIndex("sitecore_web_index");
            using (var context = searcher.CreateSearchContext())
            {
                var query = context.GetQueryable<SearchResultItem>();

                var result = query.Where(x => (x.Content.Contains(_searchTerm));

                globalResults = result.GetResults();

            }

【问题讨论】:

  • 请编辑您的问题以添加更多详细信息。例如,您的搜索代码。

标签: lucene sitecore sitecore7


【解决方案1】:

我相信SearchResultItem 具有TemplateId 属性,因此您可以使用它过滤掉文件夹项目。

var result = query.Where(x => (x.Content.Contains(_searchTerm) &&
                               x.TemplateId.ToString() != "{--Folder-template-id--}");

【讨论】:

    【解决方案2】:

    如果您希望将搜索限制在特定文件夹,您可以添加如下内容:

    var TopSearchFolderID = new Guid("{A5D56753-E5E4-42A1-AD3E-4B43C70CC618}");
    var result = query.Where(x => x.Content.Contains(_searchTerm) & x._path == TopSearchFolderID.ToString("N"));
    

    如果您希望排除特定文件夹,您可以执行以下操作:

    var FolderToExcludeID = new Guid("{A5D56753-E5E4-42A1-AD3E-4B43C70CC618}");
    var result = query.Where(x => x.Content.Contains(_searchTerm) & x._path != FolderToExcludeID.ToString("N"));
    

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2015-05-10
      • 2010-10-01
      • 2016-11-01
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多