Kentico按类名搜索

时间:2015-04-22 15:38:15

标签: kentico

我在使用ClassNames过滤搜索结果时遇到问题。下面你可以找到我使用的代码片段,希望有人有一个想法,可以帮助我。

SearchParameters parameters = new SearchParameters()
        {
            SearchFor = "support",
            SearchSort = "##SCORE##",
            Path = "/%",
            ClassNames = "cms.faq",                
            CurrentCulture = "EN-US",
            DefaultCulture = CMS.Helpers.CultureHelper.EnglishCulture.IetfLanguageTag,
            CombineWithDefaultCulture = false,
            CheckPermissions = false,
            SearchInAttachments = false,
            User = (CMS.Membership.UserInfo)CMS.Membership.MembershipContext.AuthenticatedUser,
            SearchIndexes = index.IndexName,
            StartingPosition = 0,
            DisplayResults = 10,
            NumberOfProcessedResults = 10,
            NumberOfResults = 0,
            AttachmentWhere = String.Empty,
            AttachmentOrderBy = String.Empty
        };

我找不到任何关于此的文档,但我认为类名应仅返回FAQ类型的数据,但在我的情况下,它会将其他数据返回到类似文件,新闻和自定义文档。

我还尝试添加类似ClassNames =" + cms.faq"或ClassNames =" ## cms.faq ##"但是没有运气:D

谢谢,

2 个答案:

答案 0 :(得分:4)

Classnames参数已过时,不应再使用它。由于向后兼容性,该参数仍然存在,当使用SQL搜索时,它被用于过滤掉搜索附件。如果您想通过ClassNames过滤搜索结果,则必须在 SearchFor 属性中指定类名称,如下所示:+(apple) +classname:[cms.faq TO cms.faq] +_culture:([en-us TO en-us]

答案 1 :(得分:1)

我刚刚浏览了v8.2的源代码,似乎ClassNames参数仅用于过滤掉搜索到的附件。我不确定这是故意还是错误。我建议您联系Kentico support

ClassNames的正确格式是以分号分隔的页面类型列表,例如CMS.Faq;CMS.News