如何在Sitecore中创建搜索功能 [英] how to create search function in sitecore
本文介绍了如何在Sitecore中创建搜索功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试设置一个非常基本的搜索索引,以索引特定文件夹中的所有项目。但是我做不到。请检查我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sitecore.Data.Items;
using Sitecore.ContentSearch;
using Sitecore.Search;
using Sitecore.ContentSearch.SearchTypes;
using Sitecore.ContentSearch.Linq;
using Sitecore.Data;
protected void Page_Load(object sender, EventArgs e)
{
var Index = ContentSearchManager.GetIndex("sitecore_web_index");
using (var Context = Index.CreateSearchContext())
{
IQueryable<SearchResultItem> query =
Context.GetQueryable<SearchResultItem>()
.Where(x => x.TemplateName.Contains("main"));
SearchResults<SearchResultItem> results = query.GetResults();
if (results.Hits.Any())
{
rpNewsListing.DataSource =
results.Hits.Select(hit => hit.Document.GetItem());
rpNewsListing.DataBind();
//rpNewsListing.DataSource = results.Hits.Select(x => x.Document);
// Extract the Document for each hit - this is the NewsResult object
//rpNewsListing.DataBind();
}
}
}
这样对吗?我只想创建一个简单索引,然后开始使用它。
推荐答案
我认为您正在使用语句TemplateName.Contains("main")
尝试通过您提到的此特定文件夹进行过滤操作。
sitecore_web_index
定义并创建您自己的定义,更改crawler
中的root
节点。
这样:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<contentSearch>
<configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
<indexes hint="list:AddIndex">
<index id="sitecore_MYFOLDER_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
<param desc="name">$(id)</param>
<param desc="folder">$(id)</param>
<!-- This initializes index property store. Id has to be set to the index id -->
<param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />
<strategies hint="list:AddStrategy">
<!-- NOTE: order of these is controls the execution order -->
<strategy ref="contentSearch/indexUpdateStrategies/onPublishEndAsync" />
</strategies>
<commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
<policies hint="list:AddCommitPolicy">
<policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
</policies>
</commitPolicyExecutor>
<locations hint="list:AddCrawler">
<crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
<Database>web</Database>
<Root>/sitecore/MYFOLDER</Root>
</crawler>
</locations>
</index>
</indexes>
</configuration>
</contentSearch>
</sitecore>
</configuration>
请注意,我仅将索引名称更改为*Sitecore_MYFOLDER_INDEX*,将根目录更改为/Sitecore/MYFOLDER。
然后使用新索引定义创建内容搜索
var Index = ContentSearchManager.GetIndex("sitecore_MYFOLDER_index");
这篇关于如何在Sitecore中创建搜索功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文