Sitecore возвращает «Популярные запросы» при использовании Lucene Search?

#sitecore

#sitecore

Вопрос:

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

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

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

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

Ответ №1:

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

Посмотрите здесь для получения более подробной информации.

Комментарии:

1. Вероятно, самый простой, но для модуля OMS требуется Sitecore 6.x и, imo, довольно дорогой. Но для более крупных решений в Sitecore 6.x это простой способ решить проблему.

2. Я изучу это и посмотрю, можно ли оправдать OMS для этого проекта. Это действительно кажется лучшим вариантом. Спасибо

Ответ №2:

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

Решение этого действительно разбивается на две задачи

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

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

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

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

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

Ответ №3:

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

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

Ответ №4:

У Sitecore есть готовый отчет «поиск по сайту» на панели управления executive insight, это даст вам представление о том, какие поисковые запросы приводят к наибольшему количеству посещений и, конечно же, к вовлеченности. Вам просто нужно настроить это, зарегистрировав событие страницы на странице поиска и передав запрос, иначе sitecore не будет знать, какое поле формы представляет собой поиск. Смотрите Этот пост, в нем это объясняется более подробно. Для получения дополнительной информации вы можете загрузить справочный документ по конфигурации analytics из 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