Запрос «диск 230» — это не поиск по названию. Покупатель ищет по параметру, и товар у вас есть, но в его названии числа 230 может не быть вовсе: оно лежит в свойствах карточки. Если свойства не индексируются, поиск честно отвечает «ничего не найдено».
Откуда берутся характеристики
Из товарного фида. В YML это блоки param — пары «имя свойства — значение»:
<param name="Диаметр диска">230 мм</param>
<param name="Мощность">2200 Вт</param>
<param name="Напряжение">220 В</param>
В CommerceML — развёрнутые свойства с типами и справочниками значений.
Всё, что не попало в фид, для поиска не существует. Это самая частая причина, по которой «поиск по характеристикам не работает»: алгоритм в порядке, искать нечего.
Что нужно сделать со значениями
Взять их как есть недостаточно — с ними нужно поработать.
Разделить число и единицу
«230 мм» — это число 230 и единица «мм». Разделение даёт возможность искать по диапазону: «от 200 до 250» найдёт и 230, и 220, чего сравнение строк не сделает никогда.
Привести единицы к одной
В одном каталоге встречаются «1200 Вт», «1,2 кВт» и «1200W». Это одно значение, записанное трижды. Без приведения:
- фильтр показывает три отдельных значения вместо одного;
- поиск по «1,2 кВт» не находит товары, где записано «1200 Вт»;
- сравнение товаров между собой невозможно.
Приведение делается по таблице: кВт → Вт, л.с. → Вт, см → мм и так далее.
Разобраться с десятичным разделителем
«2.5» и «2,5» — одно число. В российских фидах встречаются оба написания, иногда в одном файле.
Отбросить мусорные свойства
В выгрузках регулярно попадаются служебные поля: внутренние коды, флаги, пустые значения, шаблонные заглушки вида #PROP_TITLE#. В индексе и в фильтрах они бесполезны и мешают.
Как это работает в поиске
После обработки значения характеристик индексируются наравне с названием, и запрос может содержать их в любом виде:
| Запрос | Что находит |
|---|---|
| диск 230 | отрезные диски диаметром 230 мм |
| двигатель 9 л.с. | двигатели мощностью около 6,7 кВт |
| кабель 3х2.5 | кабель с соответствующим сечением |
| перфоратор 800 | перфораторы мощностью 800 Вт |
Последний пример показывает нюанс: число без единицы неоднозначно. 800 может быть ваттами, миллиметрами или оборотами. Разумное поведение — искать по всем числовым свойствам категории и ранжировать выше те совпадения, где единица наиболее вероятна для этого типа товара.
Связь с фильтрами и подбором
Заполненные характеристики — общая основа сразу для трёх вещей:
- Поиск по параметру — то, о чём эта статья.
- Фасетные фильтры — значения берутся оттуда же.
- Подбор аналогов по заявкам — сравнение товаров идёт по числам, а не по похожести названий.
Поэтому работа по заполнению свойств окупается не один раз. Это же объясняет, почему её стоит делать до внедрения любого из трёх, а не после.
Что делать, если свойства не заполнены
Реальная ситуация большинства каталогов: свойства есть у части позиций, у остальных пусто.
Варианты по возрастанию усилий:
- Извлечь из названия. «УШМ 125мм 1200Вт» содержит два параметра прямо в тексте. Это даёт быстрый прирост покрытия по ходовым категориям.
- Собрать со страниц товаров. У многих магазинов характеристики есть на сайте, но не попадают в выгрузку — таблицу свойств можно прочитать со страницы карточки.
- Заполнить вручную для ключевых категорий. Долго, но для нескольких сотен ходовых позиций оправдано.
Начинать разумно с категорий, где больше всего пустых поисковых запросов: там эффект виден сразу.
Коротко
- Поиск по характеристике работает только с тем, что есть в фиде.
- Значения нужно разделять на число и единицу и приводить единицы к одной.
- Ненормализованные единицы дают дубли в фильтрах и промахи в поиске.
- Заполненные свойства нужны одновременно поиску, фильтрам и подбору аналогов.
- Недостающие характеристики частично извлекаются из названий и со страниц товаров.


