使用sitecore搜索搜索特定文件夹

时间:2012-01-06 11:46:12

标签: search sitecore

我希望能够在某个目录中进行搜索。例如。假设用户点击了网站顶部的“不同类型的列车”链接。然后,该页面列出了带有搜索框的不同类型的列车。我想要用户在搜索框中键入的任何内容只是为了搜索“火车类型”部分中的页面 - /sitecore/content/LOTW/Home/trains内的任何内容以及网站上没有其他页面。我目前正在使用:

protected void searchIcon_Click(object sender, EventArgs e)
{
    PerformSearch();
}

private void PerformSearch()
{
    /* Changed from Shared Source, to use different path finding, and context database */

    Item pointerItem = Sitecore.Context.Database.SelectSingleItem("/sitecore/content/LOTW/Global/Settings/Config/Pointers/Search Results");

    if (pointerItem != null)
    {
        Item results = Sitecore.Context.Database.GetItem(new ID(pointerItem["Item"]));

        if (results != null)
        {

            string results_url = LinkManager.GetItemUrl(results) + "?search=" + Server.UrlEncode(search.Text);
            Response.Redirect(results_url);
        }
        else
        {
            search.ForeColor = Color.Red;
            search.Text = "Unable to find results item";
        }

    }
}

而是搜索整个网站。我对Sitecore中的搜索一无所知,所以我有点迷失了!

1 个答案:

答案 0 :(得分:1)

Sitecore在项目上具有Axis名称空间,允许您从特定项目访问后代,但如果您有超过25个孩子,则搜索变得非常慢。

要快速搜索,请使用Lucene索引。 Sitecore是Lucene索引的标准配置。

要简化对索引的访问,您应该下载Advanced Database Crawler免费软件/开源模块。

您可以在此处详细了解如何设置以及如何访问索引:

Using the Sitecore open source AdvancedDatabaseCrawler Lucene indexer