Поиск в определенной папке с помощью поиска по сайту - PullRequest
0 голосов
/ 06 января 2012

Я хочу иметь возможность поиска только в определенном каталоге.Например, предположим, что пользователь нажал на ссылку «разные типы поездов» в верхней части веб-сайта.Затем на этой странице есть список различных типов поездов с окном поиска.Я хочу, чтобы все, что пользователь вводил в поле поиска, просто осуществляло поиск по страницам в разделе «типы поездов» - что-либо в пределах /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 Ответ

1 голос
/ 09 января 2012

Sitecore имеет пространство имен Axis для элемента, что позволяет вам получать доступ к потомкам из определенного элемента, но если у вас более, скажем, 25 детей, поиск становится очень медленным.

Для быстрого поиска используйте индекс Lucene. Sitecore входит в стандартную комплектацию с индексом Lucene.

Чтобы упростить доступ к индексу, вам необходимо скачать Advanced Database Crawler бесплатный / открытый модуль.

Подробнее о том, как его настроить и как получить доступ к индексу, вы можете прочитать здесь:

Использование Sitecore с открытым исходным кодом AdvancedDatabaseCrawler Lucene indexer

...