Sitecore 正文标签中的搜索值

Search value in body tag in Sitecore

我想实现搜索功能,所以我的要求是我想在所有内容页面的正文标签中搜索一些关键字。我不知道如何在 Sitecore 的正文标签中搜索关键字。请指导我?

正如 Anton 所概述的,搜索 Body 标签的概念对于 Sitecore 来说是错误的。您想根据项目字段中的内容来思考。 Sitecore 的 ContentSearch 是您实现这一目标的方法。

Sitecore 带有开箱即用的默认索引,您应该将其用于搜索。您应该通过内容编辑器中的索引管理器重建这些,然后根据我在下面为您概述的基本示例进行搜索。

    public IEnumerable<Item> Search(string searchterm)
    {
        string indexName = "sitecore_web_index";

        using (var index = ContentSearchManager.GetIndex(indexName).CreateSearchContext())
        {
            var predicate = PredicateBuilder.True<SearchResultItem>();

            IQueryable<SearchResultItem> query = index.GetQueryable<SearchResultItem>().Where(i => i.Content.Contains(searchterm)).Filter(predicate);

            var searchResults = query.GetResults();

            foreach (var hit in searchResults.Hits)
            {
                yield return hit.Document.GetItem();
            }
        }
    }

jRobbins 的回答是明智的(他得到了我的支持)。但是,技术上可以索引 body 标签的内容。我会对此保持谨慎。我看到它运行良好,但我也看到它完全破坏了网站的性能。

该方法涉及在索引中创建 computed field。您通过向新发布的页面发出 Web 请求并抓取响应正文标记来填充计算字段。

这里有几个模块或多或少地做到了这一点:

如果您可以接受不太准确的内容,那么您可以遍历页面上的每个组件并从它们的数据源中提取内容。这段视频中讨论了这种方法: http://www.techphoria414.com/Blog/2012/May/Sitecore_Page_Editor_Unleashed