本文介绍了Sitecore中Body标记中的搜索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现搜索功能,所以我的要求是希望在所有内容页面的body标记中搜索某个关键字。我不知道如何在Sitecore的Body标签中搜索关键字。请给我带路好吗?

推荐答案

正如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();
            }
        }
    }

这篇关于Sitecore中Body标记中的搜索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 23:20