Поиск на сайте через компоненты
Стандартные компоненты модуля search превращают поисковый индекс в готовый интерфейс сайта. Компоненты поиска документов принимают запрос посетителя, ограничивают область поиска, проверяют доступ к документам и передают подготовленную выдачу в шаблон. Подсказки поисковых фраз общие для сайта или области поиска и не фильтруются по правам пользователя. Механизм сокращает объем собственного кода и сохраняет единое поведение поиска на разных страницах.
Компоненты подходят для публичной части, когда сайту нужны форма, результаты, подсказки или теги. Для собственного формата ответа и сложной обработки результатов используйте PHP API модуля на основе класса CSearch. Выбрать подходящую точку входа поможет статья Введение и выбор способа поиска.
Выбрать компоненты
Каждый компонент решает отдельную задачу. Для обычной страницы поиска достаточно bitrix:search.page. Дополнительную форму можно разместить в шапке или другом общем блоке сайта.
|
Компонент |
Задача |
Источник данных |
|
|
Показывает форму и отправляет параметр |
Не выполняет поиск |
|
|
Показывает форму, результаты, ошибки запроса и постраничную навигацию |
Документы поискового индекса |
|
|
Ищет документы по заголовкам во время ввода |
Заголовки документов поискового индекса |
|
|
Предлагает ранее использованные поисковые фразы |
Данные |
|
|
Дополняет ввод названиями тегов |
Теги поискового индекса |
|
|
Показывает популярные или недавние теги |
Теги поискового индекса |
Компоненты bitrix:search.title и bitrix:search.suggest.input выглядят похоже, но дают разные результаты. Первый помогает сразу перейти к найденному документу. Второй дополняет поисковую фразу и затем передает ее на обычную страницу результатов.
Перед подключением прочитайте статью Компоненты, чтобы выбрать шаблон и передать параметры в $APPLICATION->IncludeComponent().
Собрать страницу поиска
Базовый сценарий состоит из страницы результатов и необязательной формы в общем шаблоне сайта. Оба компонента передают запрос через параметр q, поэтому дополнительный обработчик формы не нужен.
Подготовьте сайт перед подключением компонентов.
-
Установите модуль
search. -
Проверьте, что модули-источники передали документы текущего сайта в поисковый индекс. Для первого заполнения запустите полную переиндексацию. Пустой индекс не даст результатов даже при правильных параметрах компонента.
-
Создайте публичную страницу с подключенными файлами
/bitrix/header.phpи/bitrix/footer.php. Они инициализируют Bitrix Framework и глобальный объект$APPLICATION.
Изучите общую структуру публичного файла в статье Создание страницы. Если поиск уже работает, но не находит ожидаемый документ, используйте проверки из материала Переиндексация и диагностика поиска.
Показать результаты
Разместите bitrix:search.page в файле публичной страницы, например /search/index.php. Компонент выводит поле запроса и выполняет поиск по текущему сайту.
Передайте в $APPLICATION->IncludeComponent() три аргумента.
-
Имя компонента, например
bitrix:search.page. -
Имя шаблона, например
clear. Пустая строка выберет шаблон.default. -
Массив параметров. Для параметров-флагов используйте
YилиN, а для числовых параметров — целые числа.
Основные параметры определяют состав и порядок выдачи.
-
DEFAULT_SORTопределяет начальную сортировку. Значениеrankсортирует по релевантности, аdateставит выше новые документы. -
PAGE_RESULT_COUNTограничивает число результатов на одной странице. Передайте целое число. Компонент использует значение50, если получает ноль или отрицательное число. -
CHECK_DATESисключает неактивные на дату запроса документы при значенииY. ЗначениеNотключает проверку дат. -
USE_LANGUAGE_GUESSисправляет запрос в другой раскладке клавиатуры при значенииY. ЗначениеNоставляет запрос без изменения. -
RESTARTповторяет поиск без морфологии при значенииY, если первый проход не нашел документов. Морфология сопоставляет запрос с разными формами слов. Повторный поиск расширяет выдачу, но может снизить точность совпадений. -
NO_WORD_LOGICотключает разбор обычных слов как логических операторов при значенииY. -
USE_TITLE_RANKучитывает совпадение в заголовке при сортировке, если передатьY. -
DISPLAY_TOP_PAGERиDISPLAY_BOTTOM_PAGERуправляют постраничной навигацией над результатами и под ними. ЗначениеYвыводит нужный блок, аNскрывает его. -
SHOW_WHEREуправляет списком областей поиска. ЗначениеYвыводит список, аNскрывает его. Если параметр не передан, компонент показывает список. -
SHOW_WHENуправляет полями начала и конца периода. ЗначениеYвыводит поля, аNскрывает их. Если параметр не передан, компонент скрывает поля. -
PAGER_SHOW_ALWAYSопределяет, нужно ли показывать постраничную навигацию, когда все результаты помещаются на одной странице. ЗначениеYпоказывает ее всегда, аN— только при наличии нескольких страниц. Если параметр не передан, компонент используетY.
О режимах кеширования читайте в разделе Настроить кеш и права.
Пример. Компонент показывает по 20 результатов, сортирует их по релевантности и учитывает даты активности документов.
<?php
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
$APPLICATION->SetTitle('Поиск');
$APPLICATION->IncludeComponent(
'bitrix:search.page',
'clear',
[
'DEFAULT_SORT' => 'rank',
'PAGE_RESULT_COUNT' => 20,
'CHECK_DATES' => 'Y',
'USE_LANGUAGE_GUESS' => 'Y',
'RESTART' => 'Y',
'NO_WORD_LOGIC' => 'N',
'USE_TITLE_RANK' => 'Y',
'SHOW_WHERE' => 'N',
'SHOW_WHEN' => 'N',
'DISPLAY_TOP_PAGER' => 'N',
'DISPLAY_BOTTOM_PAGER' => 'Y',
'PAGER_SHOW_ALWAYS' => 'N',
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php');
Компонент начинает поиск, когда получает q или tags в HTTP-запросе. До первого запроса шаблон показывает только форму. Ошибку синтаксиса компонент помещает в ERROR_CODE и ERROR_TEXT, а стандартный шаблон выводит ее рядом с формой.
Добавить форму в общий шаблон
Компонент bitrix:search.form нужен, если поле поиска должно оставаться доступным вне страницы результатов. Разместите его в шапке, боковой панели или другом общем блоке.
Передайте параметр PAGE. Он задает адрес страницы с компонентом bitrix:search.page и поддерживает маркер #SITE_DIR#. Компонент заменяет маркер на корневой каталог текущего сайта.
$APPLICATION->IncludeComponent(
'bitrix:search.form',
'flat',
[
'PAGE' => '#SITE_DIR#search/index.php',
'USE_SUGGEST' => 'N',
]
);
Форма отправляет GET-запрос с полем q. Значение PAGE должно вести на реальную публичную страницу. Иначе посетитель введет запрос, но не увидит выдачу.
Параметр USE_SUGGEST относится к шаблонам .default и flat. Значение Y заменяет обычное поле на bitrix:search.suggest.input и добавляет подсказки из накопленных данных CSearchSuggest.
Ограничить область поиска
Компонент bitrix:search.page поддерживает постоянное ограничение и выбор посетителя. Эти настройки решают разные задачи.
Задать постоянное ограничение
Параметр arrFILTER ограничивает каждый запрос компонента. Набор вариантов зависит от установленных модулей. Инфоблок хранит однотипный динамический контент, например, новости или товары. Для инфоблоков код фильтра строится как iblock_<тип_инфоблока>.
Подробнее об инфоблоках читайте в статье Введение и базовые концепции.
После выбора источника передайте связанный параметр. Его имя состоит из arrFILTER_ и кода источника. Например, arrFILTER_iblock_content содержит идентификаторы инфоблоков типа content или значение all.
Пример. Страница ищет только в инфоблоках 3 и 7 типа content.
$APPLICATION->IncludeComponent(
'bitrix:search.page',
'clear',
[
'arrFILTER' => [
'iblock_content',
],
'arrFILTER_iblock_content' => [
3,
7,
],
'SHOW_WHERE' => 'N',
'PAGE_RESULT_COUNT' => 20,
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);
Замените content на код типа инфоблока, а числа — на идентификаторы нужных инфоблоков. Компонент ищет по документам из индекса, поэтому каждый выбранный инфоблок должен участвовать в индексации.
Параметр FILTER_NAME позволяет передать дополнительный массив условий через глобальную переменную. Используйте его, когда область зависит от данных страницы. Имя должно начинаться с латинской буквы или символа подчеркивания. Значение глобальной переменной должно быть массивом условий CSearch.
Сначала сформируйте фильтр из проверенных значений. Не переносите в него произвольные ключи и значения HTTP-запроса. Затем передайте имя глобальной переменной в компонент.
$iblockId = 3;
$GLOBALS['searchSectionFilter'] = [
'MODULE_ID' => 'iblock',
'PARAM1' => 'content',
'PARAM2' => $iblockId,
];
$APPLICATION->IncludeComponent(
'bitrix:search.page',
'clear',
[
'FILTER_NAME' => 'searchSectionFilter',
'SHOW_WHERE' => 'N',
'PAGE_RESULT_COUNT' => 20,
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);
Компонент добавляет условия FILTER_NAME к строке запроса и текущему сайту. Параметр arrFILTER дополнительно ограничивает разрешенные источники. Не задавайте один источник двумя способами без необходимости. Иначе компонент применит оба набора условий одновременно.
Подробнее о дополнительных условиях, морфологии и сортировке читайте в статье Поисковые запросы через CSearch.
Дать посетителю выбор
Параметр SHOW_WHERE = Y добавляет в форму список областей. Параметр arrWHERE определяет варианты списка, но ограничивает выдачу только после выбора области посетителем.
Передайте в arrWHERE только те области, которые посетитель может выбрать. Например, значение iblock_content добавляет тип инфоблока content, а forum добавляет форумы, если модуль установлен.
$APPLICATION->IncludeComponent(
'bitrix:search.page',
'clear',
[
'SHOW_WHERE' => 'Y',
'arrWHERE' => [
'iblock_content',
'forum',
],
'PAGE_RESULT_COUNT' => 20,
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);
Посетитель передает выбранную область в HTTP-параметре where. Компонент преобразует значение в ограничения по модулю и типу данных. Если список выбора не нужен, отключите SHOW_WHERE и задайте постоянную область через arrFILTER.
Параметр SHOW_WHEN = Y добавляет поля начала и конца периода. Компонент принимает только даты в формате текущего сайта и ограничивает выдачу по дате изменения документа.
Добавить подсказки
Модуль предоставляет подсказки двух типов. Выберите механизм по ожидаемому действию посетителя.
Предложить поисковые фразы
Компонент bitrix:search.suggest.input подставляет фразы из отдельного набора данных CSearchSuggest. Он не читает статистику CSearchStatistic. Он не ищет документы по мере ввода. Подсказки помогают повторно использовать формулировки, которые уже встречались на сайте.
Основные параметры управляют полем и списком. Для связи с bitrix:search.page обязательно задайте NAME = q. Параметры VALUE, INPUT_SIZE и DROPDOWN_SIZE необязательны. Они меняют вид или наполнение подсказок.
-
NAMEзадает имя поля формы. Для страницыbitrix:search.pageиспользуйте строкуq. -
VALUEзаполняет поле переданным текстом. Пустая строка оставляет поле незаполненным. -
INPUT_SIZEзадает размер поля в символах. Передайте целое число. Значение по умолчанию равно40. -
DROPDOWN_SIZEограничивает число подсказок. Передайте целое число. Значение по умолчанию равно10.
Обычно отдельный вызов не нужен. Шаблоны bitrix:search.form и bitrix:search.page самостоятельно подключают компонент, когда параметр USE_SUGGEST равен Y. На странице результатов механизм также связывает фразу с областью поиска и числом найденных документов.
Подсказки появятся после того, как шаблон страницы результатов передаст фразу и число совпадений в CSearchSuggest::SetResultCount(). Для шаблона clear из основного примера добавьте 'USE_SUGGEST' => 'Y' и в параметры bitrix:search.page, и в параметры bitrix:search.form. Выполните запрос, затем введите начало фразы в форме.
Поле внутри страницы результатов использует хеш фильтра, а отдельная форма без хеша показывает накопленные варианты сайта. Если собственный шаблон не вызывает SetResultCount(), одного включения статистики недостаточно. Подсказки по фразам объясняют хранение и срок жизни этих данных.
Искать документы по заголовкам
Компонент bitrix:search.title отправляет AJAX-запросы и показывает найденные документы по категориям. Посетитель может открыть один результат или перейти на полную страницу выдачи.
Сначала настройте адрес страницы и состав категорий. В массиве параметров компонента задайте PAGE, CATEGORY_<номер> и связанный параметр CATEGORY_<номер>_<источник>. Параметры ниже управляют размером, сортировкой и видом списка.
-
PAGEнаправляет посетителя на страницу полной выдачи. Передайте строковый адрес страницы сbitrix:search.page. -
NUM_CATEGORIESзадает число категорий в списке. Передайте положительное целое число. Значение по умолчанию равно1. -
TOP_COUNTограничивает число результатов в каждой категории. Передайте положительное целое число. Значение по умолчанию равно5. -
ORDERопределяет порядок результатов. Значениеdateсортирует их по дате, аrank— по релевантности. -
CATEGORY_<номер>выбирает источники категории. Передайте массив их кодов. -
CATEGORY_<номер>_TITLEзадает название категории строкой. -
CATEGORY_<номер>_<источник>ограничивает выбранный источник. Дляiblock_contentпередайте массив идентификаторов инфоблоков типаcontentили массив со строкойallдля всех таких инфоблоков. -
SHOW_OTHERSдобавляет результаты из источников, которые не вошли в заданные категории, при значенииY. ЗначениеNскрывает такие результаты. -
SHOW_INPUTуправляет полем поиска. ЗначениеYвыводит поле, аNскрывает его. -
INPUT_IDиCONTAINER_IDсвязывают поле поиска с контейнером результатов. Передайте уникальные строковые HTML-идентификаторы, еслиSHOW_INPUTравенY. -
CHECK_DATESисключает неактивные документы при значенииY. -
USE_LANGUAGE_GUESSисправляет запрос в другой раскладке клавиатуры при значенииY.
Пример. Компонент ищет заголовки в инфоблоках типа content и показывает до пяти результатов.
$APPLICATION->IncludeComponent(
'bitrix:search.title',
'visual',
[
'PAGE' => '#SITE_DIR#search/index.php',
'NUM_CATEGORIES' => 1,
'TOP_COUNT' => 5,
'ORDER' => 'rank',
'USE_LANGUAGE_GUESS' => 'Y',
'CHECK_DATES' => 'Y',
'SHOW_OTHERS' => 'N',
'CATEGORY_0_TITLE' => 'Материалы',
'CATEGORY_0' => [
'iblock_content',
],
'CATEGORY_0_iblock_content' => [
'all',
],
'SHOW_INPUT' => 'Y',
'INPUT_ID' => 'title-search-input',
'CONTAINER_ID' => 'title-search',
]
);
JavaScript использует INPUT_ID и CONTAINER_ID для связи поля с контейнером результатов. Шаблон visual из примера начинает запрос после двух введенных символов. Посетитель увидит категорию «Материалы» и до пяти ссылок. Если список остается пустым, проверьте наличие документов из выбранных инфоблоков в поисковом индексе.
Добавить теги
Теги работают только для документов, которые модуль-источник передал в поисковый индекс с полем TAGS. Теги можно передать самостоятельно или вместе с текстовым запросом. Различия этих режимов описаны в правилах поиска по тегам. Чтобы передать теги при индексации, используйте рекомендации из статьи Индексация собственного контента.
Дополнить поле ввода тегов
Компонент bitrix:search.tags.input предлагает теги по введенному фрагменту. Поместите его внутрь GET-формы, которая ведет на страницу bitrix:search.page.
Перед вызовом задайте имя поля и область подсказок. Для передачи тегов в bitrix:search.page обязательно используйте NAME = tags. Укажите SITE_ID, если сайт работает в многосайтовой конфигурации или область нужно зафиксировать явно.
-
NAMEзадает имя поля. Страница результатов читает теги из поля с именемtags. -
VALUEзаполняет поле выбранными тегами. Передайте строку с тегами через запятую или пустую строку. -
SITE_IDограничивает подсказки сайтом с указанным строковым идентификатором. КонстантаSITE_IDсодержит идентификатор текущего сайта. -
arrFILTERограничивает подсказки выбранными источниками. Передайте массив кодов так же, как вbitrix:search.page. -
PAGE_ELEMENTSограничивает число вариантов в списке. Передайте положительное целое число. Значение шаблона по умолчанию равно10. -
SORT_BY_CNTставит выше частые теги при значенииY.
Пример. Форма отправляет выбранные теги на страницу поиска.
<form action="/search/index.php" method="get">
<?php
$APPLICATION->IncludeComponent(
'bitrix:search.tags.input',
'',
[
'NAME' => 'tags',
'VALUE' => (string)($_GET['tags'] ?? ''),
'SITE_ID' => SITE_ID,
'arrFILTER' => [
'iblock_content',
],
'arrFILTER_iblock_content' => [
'all',
],
'PAGE_ELEMENTS' => 10,
'SORT_BY_CNT' => 'Y',
]
);
?>
<button type="submit">Найти по тегам</button>
</form>
Компонент сохраняет исходное значение в ключе с префиксом ~, а подготовленное значение — в обычном ключе. Стандартный шаблон выводит подготовленный VALUE. После выбора подсказки и отправки формы страница /search/index.php получит тег в GET-параметре tags.
Показать облако тегов
Компонент bitrix:search.tags.cloud группирует теги и строит ссылки на страницу поиска. Размер и цвет в стандартном шаблоне отражают частоту и дату изменения документов.
Основные параметры задают выборку и адрес перехода. Для перехода к выдаче явно задайте URL_SEARCH. Параметры SORT, PAGE_ELEMENTS, PERIOD и CHECK_DATES управляют набором тегов. Параметр CACHE_TIME задает срок хранения кеша.
-
SORTопределяет порядок тегов. ЗначениеNAMEсортирует их по имени, аCNT— по частоте. -
PAGE_ELEMENTSограничивает число тегов. Передайте положительное целое число. Форма настроек компонента предлагает значение150. При прямом вызове без этого параметра компонент использует резервное значение1000. Задавайте ограничение явно. -
PERIODограничивает выборку числом дней. Передайте целое число или пустое значение, чтобы снять ограничение. -
URL_SEARCHзадает адрес страницы результатов. Компонент добавляет параметрtags, если строковый адрес не содержит маркер#TAGS#. -
TAGS_INHERITсохраняет ранее выбранные теги при переходе по облаку, если передатьY. -
CHECK_DATESисключает неактивные документы при значенииY. -
CACHE_TIMEзадает срок хранения кеша в секундах. Передайте целое число. Значение по умолчанию равно3600.
Пример. Облако показывает до 50 тегов из документов, которые изменились за последние 30 дней.
$APPLICATION->IncludeComponent(
'bitrix:search.tags.cloud',
'',
[
'SORT' => 'CNT',
'PAGE_ELEMENTS' => 50,
'PERIOD' => 30,
'URL_SEARCH' => '/search/index.php',
'TAGS_INHERIT' => 'Y',
'CHECK_DATES' => 'Y',
'arrFILTER' => [
'iblock_content',
],
'arrFILTER_iblock_content' => [
'all',
],
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);
Компонент включает группы текущего пользователя в ключ кеша. Если запрос содержит поисковую строку или выбранные теги, компонент отключает кеш для такого вызова. Для остальных вызовов он регистрирует тег управляемого кеша bitrix:search.tags.cloud. Управляемый кеш позволяет связать сохраненный результат с именованным тегом и очищать связанные записи вместе.
Каждая ссылка облака должна открыть URL_SEARCH и передать выбранный тег в параметре tags.
Настроить кеш и права
Компоненты не отменяют модель доступа поискового индекса. Поиск сравнивает права текущего посетителя с кодами доступа документа. Закрытый документ не должен попадать в выдачу пользователя без нужной группы.
Проверьте права после индексации и после каждого изменения доступа к исходному объекту. Модуль-источник отвечает за своевременное обновление поля PERMISSIONS в индексе. Чтобы разобраться в устройстве индекса и распределении ответственности, прочитайте статью Архитектура и поисковый индекс.
Параметр CACHE_TIME у bitrix:search.page кеширует данные для списка областей поиска. Сама выдача зависит от строки запроса, фильтров и текущего пользователя. Не рассчитывайте на этот параметр как на кеш результатов каждого запроса. Изучите общие режимы и устройство кеша в разделе Кеширование компонентов.
Параметр CACHE_TYPE принимает три строковых значения:
-
Aиспользует общую настройку автокеширования сайта, -
Yвключает кеш независимо от режима автокеширования, -
Nотключает кеш.
Параметр CACHE_TIME действует при включенном кеше и задает срок хранения в секундах. Для обычной страницы начинайте с CACHE_TYPE = A. Значения Y и N используйте, когда нужно явно зафиксировать режим для конкретного вызова.
Облако тегов кеширует подготовленный результат и учитывает группы пользователя. Для страницы с часто меняющимся индексом уменьшите CACHE_TIME. Для большой и стабильной выборки увеличьте время.
Проверьте обновление облака вручную.
-
Отключите кеш значением
CACHE_TYPE = Nи запомните набор тегов. -
Измените теги одного документа, обновите его в индексе и снова откройте страницу.
-
Включите
CACHE_TYPE = Aи повторите изменение. -
Дождитесь окончания
CACHE_TIMEили очистите кеш компонента вручную. -
Убедитесь, что облако показывает новый тег и актуальное число документов.
Доработать шаблон безопасно
Не изменяйте файлы в /bitrix/components/bitrix/. Обновление продукта может заменить правки. Скопируйте шаблон компонента bitrix:search.page в каталог шаблона сайта и назовите копию results. Путь состоит из пространства имен bitrix, имени компонента search.page и имени нового шаблона. Если выберете другое имя, передайте его вторым аргументом IncludeComponent().
/local/templates/<шаблон_сайта>/components/bitrix/search.page/results/
Передайте имя results вторым аргументом IncludeComponent(). Изучите общую структуру шаблонов и назначение result_modifier.php в статье Компоненты.
Если форматтер результата не передал TITLE_FORMATED, поисковый API готовит заголовок в TITLE_FORMATED и доступный текст документа в BODY_FORMATED. Компонент отдельно готовит URL и TAG_NAME.
-
TITLE_FORMATED— экранированный заголовок с HTML-разметкой подсветки. -
BODY_FORMATED— экранированный фрагмент текста с HTML-разметкой подсветки. -
URL— адрес результата, экранированный для HTML. -
TAG_NAME— экранированное название тега.
Выводите подготовленные поля без повторного вызова htmlspecialcharsbx(). Повторное экранирование покажет разметку подсветки как текст. Форматтер результата может подготовить эти поля самостоятельно; через CSearch::Index() они не сохраняются. Наличие TITLE_FORMATED отключает стандартную подготовку заголовка, тела и тегов. Собственный форматтер должен согласованно подготовить нужные поля, экранировать пользовательский текст и установить тип html для HTML-полей через соответствующие ключи *_TYPE. Если передать только BODY_FORMATED, стандартная подготовка может заменить его значение.
Пример. Шаблон выводит подготовленные заголовок, фрагмент текста и адрес результата.
<?php foreach ($arResult['SEARCH'] as $item): ?>
<article class="search-result">
<h2>
<a href="<?= $item['URL'] ?>">
<?= $item['TITLE_FORMATED'] ?>
</a>
</h2>
<div><?= $item['BODY_FORMATED'] ?></div>
</article>
<?php endforeach; ?>
Ключи с префиксом ~ содержат исходные значения. Экранируйте их перед текстовым выводом. Не подставляйте исходный заголовок, текст или тег прямо в HTML.
Адрес результата приходит из индексируемого документа. Модуль-источник должен формировать разрешенный локальный URL или проверенный адрес с протоколом http или https до индексации. HTML-экранирование защищает атрибут от разрыва разметки, но не проверяет допустимый протокол ссылки.
Проверить поиск
Проверяйте состав выдачи и интерфейс от имени пользователей с разными правами.
-
Откройте страницу без параметров и убедитесь, что она показывает форму без ошибки.
-
Найдите известный документ по слову из заголовка и по слову из текста.
-
Отправьте запрос из формы в общем шаблоне и проверьте адрес страницы и параметр
q. -
Повторите поиск с сортировкой по релевантности и дате.
-
Проверьте постоянный фильтр
arrFILTERи каждый вариант изarrWHERE. -
Введите запрос с ошибочной раскладкой и проверьте исходную и исправленную формулировки.
-
Проверьте пустую выдачу, запрос из стоп-слов и ошибку в логическом выражении. Стоп-слова — это частые слова, которые поиск исключает из значимой части запроса.
-
Перейдите между страницами результатов и убедитесь, что запрос и фильтры сохраняются.
-
Проверьте подсказки по фразам после накопления данных
CSearchSuggestи быстрые результатыbitrix:search.title. -
Найдите документ по тегу и проверьте ссылки облака тегов.
-
Повторите поиск от имени пользователя без доступа к одному из документов.
Стандартные компоненты создают интерфейс типового поиска от ввода запроса до безопасного вывода результатов. Модуль-источник по-прежнему отвечает за содержимое индекса, права и адреса документов. PHP API модуля нужен, когда готовая форма, фильтры и шаблоны не покрывают правила проекта.