Допустим имеется инфоблок, в котором содержится информация о моделях мониторов (например DELL, Nec), пользователь на странице поиска вводит запрос вида "dell multisync", (dell - марка, multisync - модель марки NEC). Каким образом необходимо представить структуру данных в информационных блоках, для того, что бы при подобном запросе выдача результатов была: 1. Информация про multisync. 2. Информация про DELL?
Изрядная часть параметров монитора (свойств инфоблока) у вас будет организована в виде списка или в виде привязки к элементам инфоблока, иначе редактор сойдёт с ума. Марка, разрешение, тип матрицы и т.п.
Я бы завёл специальное свойство. Скажем, "Полное описание модели". При этом: * это свойство должно индексироваться модулем поиска; * это свойство должно автоматически заполняться при добавлении/изменении элемента инфоблока по событиям onBeforeIBlockElenentAdd/Update. Ну или onAfer, возможны варианты. В обработчике события формируете строку типа "NEC MultiSync EA192M S/WH Размер экрана: 19" Яркость: 250 кд/м2 Контрастность: 1000:1 Разрешение: 1280 x 1024 Время отклика: 5 мс" и записываете её в это свойство.
Если результатов не найдено, и если поисковый запрос состоит из более чем одного слова, поискать по каждому слову отдельно. К организации инфоблоков никакого отношения не имеет, решается исключительно на уровне модуля поиска.
Если результатов не найдено, и если поисковый запрос состоит из более чем одного слова, поискать по каждому слову отдельно. К организации инфоблоков никакого отношения не имеет, решается исключительно на уровне модуля поиска.
Смысл не в этом. Модель Multisync относится к марке NEC, а пользователь случайно вводит не ту марку (DELL). Результаты есть и они найдены, но необходимо что бы информация о Multisync в запросе отображалась выше, чем информация о мониторах DELL. Если прочитать , то можно узнать о существовании правил сортировки поисковых запросов. И хотелось бы уточнить на конкретном примере каким образом необходимо настраивать эти самые правила и организовывать структуру (можно ли делать структуру вида: "Инфоблок моделей товара - раздел марки модели товара - элементы модели" или же потребуется делать 2 инфоблока "инфоблок марок моделей - элементы марок, Инфоблок товаров модели - элементы моделей со свойством привязки к элементам марки товара") для получения необходимого нам вывода результатов в случае неоднозначного поискового запроса.
Идея проектировать структуру хранения данных так, чтобы при неправильном поисковом запросе одна байда стояла выше другой вызывает у меня разрыв шаблона. Извините, даже думать об этом не хочу.