【问题标题】:How do I get DNN Search results to display links to articles with a 2sxc app?如何使用 2sxc 应用获取 DNN 搜索结果以显示文章链接?
【发布时间】:2021-05-03 21:02:15
【问题描述】:

我有一个 2sxc 应用程序,它是一个资源列表。它有一个列表,每个项目都转到一个详细信息视图,该视图具有基于标题的唯一 URL。 (URL 字段是内容类型中的一个字段)。类似于 domain.com/resources/details/my-amazing-resource。

当用户在网站上搜索“amazing”时,核心 DNN 搜索结果模块会显示应用程序的结果,包括“My Amazing Resource”项,但它实际上并未链接到 domain.com/resources/详细信息/我的惊人资源。它只是链接到 domain.com/resources/。

我怎样才能使搜索结果真正指向应用程序中项目的唯一 URL?这可能吗? DNNSharp Search Boost 会比核心 DNN 搜索模块更好吗?

【问题讨论】:

    标签: dotnetnuke 2sxc


    【解决方案1】:

    自从我修改它已经一年多了,但听起来你正在寻找的东西需要编码。 Dnn Search 将自动从 2sxc 模块中获取它可以获取的内容,但是如果您需要自定义或改进返回的内容,那么您需要 CustomizeSearch() 或 CustomizeData() - 我不确定我是否见过任何像样的示例,但是我知道the FAQs App 会这样做,并且必须有一个工作示例。这是 2sxc Docs 中统计的地方, CustomizeSearch().

    【讨论】:

    • 看起来很有希望。我尝试使用代码示例,但它说 DnnContainer 不存在。我将不得不对此进行更多研究。
    【解决方案2】:

    我在博客或新闻应用中推荐示例。

    【讨论】:

      【解决方案3】:

      根据 Jeremy 和 Daniel 的建议,我最终更新了我的 _resourcelist.cshtml 文件,使其具有如下所示的代码:

      @inherits ToSic.Sxc.Dnn.RazorComponent
      @using ToSic.Razor.Blade;
      @using ToSic.Eav.Run;
      @using ToSic.Sxc.Dnn.Run;
      @using ToSic.Sxc.Search;
      @functions
      {
          /// <summary>
          /// Populate the search - ensure that each entity has an own url/page
          /// </summary>
          /// <param name="searchInfos"></param>
          /// <param name="moduleInfo"></param>
          /// <param name="startDate"></param>
          public override void CustomizeSearch(Dictionary<string, List<ISearchItem>> searchInfos, IContainer moduleInfo, DateTime beginDate)
          {
              foreach (var si in searchInfos["Default"])
              {
                  // tell the search system what url it should use in the result
                  si.QueryString = "resource/" + AsDynamic(si.Entity).Link;
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 2022-01-18
        • 1970-01-01
        • 2019-04-05
        • 1970-01-01
        • 2018-11-15
        • 1970-01-01
        相关资源
        最近更新 更多