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