Я не знаю ни одной стандартной функциональности в Sitecore, которая бы помогла вам достичь этого, поэтому вам, вероятно, придется подойти к этому с нуля - если кто-то еще здесь не сможет указать на пакетную сделку где-то :-)
Решение этой проблемы на самом деле разбивается на две задачи
1) Сбор информации о поисковом запросе.Всякий раз, когда пользователь вводит поисковое слово в поле поиска, которое, как я полагаю, у вас есть;нормализуйте его и сохраните в таблице SQL (по сути, в таблице типов [term] [count]. Обновите счетчик для уже сохраненных вами терминов.
Под нормализацией я подразумеваю нижний регистр и т. д. - возможно, разбивая каждыйищите слово (слово) и сохраняйте их один за другим, если это то, к чему призывает ваше решение (вероятно, это не тот маршрут, по которому я бы пошел)
2) Получение информации из таблицы в реальном времени в зависимости от того, что представляет собой пользовательнабрав в окне поиска.Предполагая, что вы хотите что-то вроде «амазоноподобного» - также встречающегося почти во всех основных поисковых системах в настоящее время - автозаполнение.Обычно я реализую их в веб-сервисе, который затем вызывается Ajax, JQuery или любой другой реализацией расширенного клиента, которую вы предпочитаете.
Что касается обновления файла XML, я думаю, что проблемы с блокировкой и производительностью убьют это решение;хотя, возможно, его можно было бы заставить работать в очень небольшом масштабе.
Извините, что не могу быть более конкретным в своем ответе, но ваш вопрос очень открытый.