如何在kentico中为Smartsearch中的类别和作者提前过滤

时间:2013-04-04 10:48:54

标签: asp.net content-management-system kentico

我创建了基本搜索,并使用SearchHelper根据搜索参数获取智能搜索结果。

现在根据类别,作者等创建高级搜索,但没有找到根据这些条件过滤结果的方法。

我正在寻找一种使用

数据集显示结果的方法
        // Prepare parameters
            SearchParameters parameters = new SearchParameters()
            {
                SearchFor = searchText,
                SearchSort = SearchHelper.GetSort(srt),
                Path = path,
                ClassNames = DocumentTypes,
                CurrentCulture = culture,
                DefaultCulture = defaultCulture,
                CombineWithDefaultCulture = CombineWithDefaultCulture,
                CheckPermissions = CheckPermissions,
                SearchInAttachments = SearchInAttachments,
                User = (UserInfo)CMSContext.CurrentUser,
                SearchIndexes = Indexes,
                StartingPosition = startPosition,
                DisplayResults = displayResults,
                NumberOfProcessedResults = numberOfProceeded,
                NumberOfResults = 0,
                AttachmentWhere = AttachmentsWhere,
                AttachmentOrderBy = AttachmentsOrderBy,
                BlockFieldOnlySearch = BlockFieldOnlySearch,
            };

            // Search
            DataSet results = SearchHelper.Search(parameters);

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用方法:

SearchHelper.CombineSearchCondition()

第一个参数是searchText,其中包含您可能已经拥有的搜索词。

第二个参数是searchConditions,可以按https://docs.kentico.com/k10/configuring-kentico/setting-up-search-on-your-website/smart-search-syntax

格式化

或者,您可以手动将搜索条件附加到搜索文本中,用空格分隔每个术语。

请记住,要根据任何字段进行过滤,需要在SiteManager->开发 - > DocumentTypes-> DocumentType->搜索标签中选择它们。