我创建了基本搜索,并使用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);

最佳答案

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

SearchHelper.CombineSearchCondition()

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

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

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

请记住,要基于任何字段进行过滤,需要在SiteManager->开发-> DocumentTypes-> DocumentType->搜索选项卡中将它们选择为可搜索。

关于asp.net - 如何在Kentico的Smartsearch中对类别和作者进行高级筛选,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15809061/

10-11 02:11