Sitecore Multisite Lucene Поиск по релевантности - PullRequest
1 голос
/ 18 мая 2011

В настоящее время у меня есть многосайтовая установка Sitecore 6.4.Я установил модуль LuceneSearch на сайты, но мне было предложено отобразить результаты поиска по всем сайтам.Я изменил «Root» в определении индекса на web.config, чтобы он указывал на корень, содержащий все сайты, и это успешно возвращает результаты по всем сайтам.

Однако эти результаты должны быть взвешены, чтобы отобразить результаты текущего сайта контекста над другими.

Есть ли простой способ добиться этого?

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

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

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

ПРИМЕЧАНИЕ: при индексации пути замените ("/"или пробел) с чем-то еще, например '#', и сделайте то же самое при построении запроса.

для расширенного использования поиска lucene, посмотрите: http://sitecoreblog.alexshyba.com/2010/11/sitecore-searcher-and-advanced-database.html

0 голосов
/ 18 мая 2011

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

Просто подумайте, но с помощью модуля SharedSource AdvancedDatabaseCrawler вы можете добавить новое динамическое поле под названием «сайт» и сохранить идентификатор сайта или имя сайта для каждого элемента, который вы индексируете. Затем вы можете выполнить поиск по индексу дважды. Один раз, чтобы получить все результаты для текущего контекстного сайта, а затем второй поиск, где вы получите все результаты, где поле сайта не равно контекстному сайту.

...