【问题标题】:Page crawler index in kentico is not showing the content in the resultskentico 中的页面爬虫索引未显示结果中的内容
【发布时间】:2019-05-04 06:15:14
【问题描述】:

我正在尝试显示页面爬虫索引的结果,结果很好,但问题是当我尝试显示内容值为空时,我在类中使用 OnHtmlToPlainText 方法来过滤内容。 这是转换的代码

 <div class="content">
        <%#SearchHighlight(HTMLHelper.HTMLEncode(TextHelper.LimitLength(HttpUtility.HtmlDecode(HTMLHelper.StripTags(CMS.Base.Web.UI.ControlsHelper.RemoveDynamicControls(GetSearchedContent(DataHelper.GetNotEmpty(Eval("CONTENT"), ""))), false, true, " ", "@", "")), 280, "...")), "<span style='background-color: #FEFF8F'>", "</span>")%><br />
 </div><!--  content -->

这是后端代码

public class CustomSearchCrawlerModule : CMS.DataEngine.Module
{

    private void OnGetPageContent(object sender, DocumentSearchEventArgs e)
    {

    SearchField sf=new SearchField();
    sf.FieldName = "CONTENT";
    sf.Value = e.Content;

    string content = e.Content;
    e.SearchDocument.AddSearchField(sf);
    }

}

请给点建议

【问题讨论】:

    标签: search indexing kentico


    【解决方案1】:

    我检查了您的模板代码,对我来说工作正常。无需为内容添加新字段,因为该字段已经存在,除非您在那里有一些自定义逻辑。如果你有它,也许你应该先检查那个逻辑。这可能导致 e.Content 已经是空字符串。你也可以试试这个语法:

    e.SearchDocument.Add("CONTENT", e.Content, true, true);
    

    【讨论】:

    • 我尝试使用默认的内容字段,但它没有显示内容,这就是我尝试使用自定义但它也没有显示任何内容的原因。可以是设置或角色吗?
    • 被抓取的页面的页面类型是什么?如果您转到页面类型 > 选择该页面类型 > 搜索字段选项卡。什么映射到内容?如果这个页面完全是动态生成的,那么就没有 DocumentContent 可以映射到 Content。您可以选择元数据描述之类的内容来映射到内容,您可以使用元数据选项卡进入预告片。
    • 是的,这就是内容字段为空的情况,因为是动态内容您知道是否有任何方法可以在描述的元数据中添加整个文档内容值? @Rui
    • 您需要手动填充元数据,它应该比动态生成的随机内容更有意义。动态内容不应用于预告片。在转换中,“内容”仅用于预告片显示,而不用于索引。
    猜你喜欢
    • 2019-04-29
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多