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
我想实现搜索功能,所以我的要求是我想在所有内容页面的正文标签中搜索一些关键字。我不知道如何在 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