Sitecore возвращает "Популярные запросы" при использовании Lucene Search? - PullRequest
2 голосов
/ 13 апреля 2011

У меня есть запрос на возврат списка самых популярных поисковых терминов, используемых при поиске на сайте Sitecore.

Я понятия не имею, как реализовать функцию такого рода с помощью Sitecore или есть ли у Sitecore такого рода функциифункциональность все готово.Я не могу найти какую-либо документацию, детализирующую это.

В настоящее время я использую поиск на основе модуля LuceneSearch (http://trac.sitecore.net/LuceneSearch), но изменен для привязки к ListView для удобства разбивки на страницы.

В настоящее времяЯ, вероятно, просто собираюсь создать отдельную функцию / класс для обновления файла XML или чего-то еще, если кто-то не сможет указать мне правильное направление ...?

Ответы [ 4 ]

3 голосов
/ 15 апреля 2011

Я бы откровенно использовал для этого OMS - это то, для чего он предназначен.Нет необходимости в отдельной базе данных.Просто зарегистрируйте поисковые события через API с помощью OMS.Есть готовый отчет о поиске.Может потребоваться некоторая настройка, но это, кажется, лучшее из готового решения.

Подробнее смотрите здесь .

1 голос
/ 13 апреля 2011

Очень интересный вопрос.Одна вещь, которую вы могли бы сделать, это иметь другую базу данных для хранения этих поисковых запросов.Вставка в эту БД не была бы очень сложной и обошла бы проблему блокировки XML-файла.Возможно, вставьте поисковый запрос в таблицу БД, чтобы получить верхние результаты, просто потяните верхние x строки, упорядоченные по этому полю запроса.Как уже говорил Марк Кэссиди, возможно, нормализуйте данные перед их вставкой.

Вы можете изолировать эту работу от своего поискового макета (или подслоя), чтобы он выполнялся в определенной части сайта, а не на каждой странице.1003 *

1 голос
/ 13 апреля 2011

Я не знаю ни одной стандартной функциональности в Sitecore, которая бы помогла вам достичь этого, поэтому вам, вероятно, придется подойти к этому с нуля - если кто-то еще здесь не сможет указать на пакетную сделку где-то :-)

Решение этой проблемы на самом деле разбивается на две задачи

1) Сбор информации о поисковом запросе.Всякий раз, когда пользователь вводит поисковое слово в поле поиска, которое, как я полагаю, у вас есть;нормализуйте его и сохраните в таблице SQL (по сути, в таблице типов [term] [count]. Обновите счетчик для уже сохраненных вами терминов.

Под нормализацией я подразумеваю нижний регистр и т. д. - возможно, разбивая каждыйищите слово (слово) и сохраняйте их один за другим, если это то, к чему призывает ваше решение (вероятно, это не тот маршрут, по которому я бы пошел)

2) Получение информации из таблицы в реальном времени в зависимости от того, что представляет собой пользовательнабрав в окне поиска.Предполагая, что вы хотите что-то вроде «амазоноподобного» - также встречающегося почти во всех основных поисковых системах в настоящее время - автозаполнение.Обычно я реализую их в веб-сервисе, который затем вызывается Ajax, JQuery или любой другой реализацией расширенного клиента, которую вы предпочитаете.

Что касается обновления файла XML, я думаю, что проблемы с блокировкой и производительностью убьют это решение;хотя, возможно, его можно было бы заставить работать в очень небольшом масштабе.

Извините, что не могу быть более конкретным в своем ответе, но ваш вопрос очень открытый.

0 голосов
/ 22 февраля 2014

Sitecore имеет готовый отчет «Поиск по сайту» на панели инструментов Executive Insight, который даст вам представление о том, какие поисковые запросы являются наиболее популярными, и, конечно, полезность участия. Вам просто нужно настроить его, зарегистрировав событие страницы на странице поиска и передав запрос, иначе sitecore не будет знать, какое поле формы представляет собой поиск. Смотрите этот пост, он объясняет это более подробно. Для получения дополнительной информации вы можете скачать справочный документ по конфигурации аналитики с sdn. http://sdn.sitecore.net/upload/sitecore6/65/engagement_analytics_configuration_reference_sc65-usletter.pdf И не забывайте для производительности sitecore кэширует отчеты на разных уровнях, поэтому во время разработки может быть полезно узнать, как форсировать обновление кэша, я говорю об этом в следующем сообщении в блоге: http://andytsitecore.blogspot.co.uk/2013/10/sitecore-dms-and-analytics.html

...