← Назад к вопросам

Какие метрики предложишь для оценки работы поиска товаров?

2.0 Middle🔥 201 комментариев
#Метрики продукта#Работа с продуктом и бизнесом

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Метрики для оценки работы поиска товаров

Введение

Поиск товаров — критическая функция в e-commerce приложениях (Amazon, Aliexpress, Ozon и т.д.). Плохой поиск напрямую приводит к потере продаж. Я расскажу о системе метрик для оценки качества поиска и примерах из реальных проектов.

Иерархия метрик поиска

┌────────────────────────────────────────────────┐
│ USAGE METRICS — Используют ли люди поиск?     │
├────────────────────────────────────────────────┤
│ RELEVANCE METRICS — Релевантны ли результаты? │
├────────────────────────────────────────────────┤
│ CONVERSION METRICS — Покупают ли найденное?   │
├────────────────────────────────────────────────┤
│ QUALITY METRICS — Как быстро поиск работает?  │
└────────────────────────────────────────────────┘

Слой 1: USAGE METRICS (Использование поиска)

1.1 Search Usage Rate (Процент пользователей, использующих поиск)

Определение: Сколько % пользователей хотя бы раз воспользовались поиском.

МЕТРИКА: Users with search / Total users * 100%

Пример:
100,000 пользователей
45,000 использовали поиск
Search Usage Rate = 45%

Нормы:
- > 50%: Отлично (люди доверяют поиску)
- 30-50%: Хорошо
- 10-30%: Низко (может быть, категории лучше работают)
- < 10%: Очень низко, нужно улучшать

Интерпретация:

  • Если Usage Rate < 20%, люди предпочитают категории или recommendations
  • Это может означать, что поиск не интуитивен или результаты плохие

1.2 Searches per Session (Количество поисков за сессию)

Определение: В среднем сколько раз за одну сессию пользователь ищет.

МЕТРИКА: Total searches / Total sessions

Пример:
100,000 сессий
150,000 всего поисковых запросов
Searches per Session = 1.5

Интерпретация:
- 1.0 = пользователь ищет один раз за сессию
- > 1.5 = пользователи ищут много раз (может быть не найти)
- < 0.5 = люди ищут редко (предпочитают категории)

1.3 Search Abandonment Rate (Процент заброшенных поисков)

Определение: Сколько % поисков заканчиваются без клика на результат.

Формула: (Searches without clicks) / (Total searches) * 100%

Пример:
1,000 поисков
700 с кликом на товар
300 без клика

Abandon Rate = 300 / 1000 = 30%

Нормы:
- < 20%: Отлично (результаты релевантны)
- 20-35%: Хорошо
- 35-50%: Плохо (результаты не подходят)
- > 50%: Очень плохо (поиск сломан)

Проблемы при high abandon rate:

  • Результаты не релевантны запросу
  • Категория товаров, которую пользователь ищет, отсутствует
  • Интерфейс запутанный

Слой 2: RELEVANCE METRICS (Релевантность результатов)

2.1 Click-through Rate (CTR) — Процент кликов на результаты

Определение: На сколько % результатов пользователи нажимают.

МЕТРИКА: Clicks on results / Total results shown * 100%

Пример:
Поиск "iPhone 15"
Показано 30 результатов
Кликнуто на 6 результатов
CTR = 6 / 30 = 20%

Нормы:
- > 15%: Отлично (результаты привлекательны)
- 10-15%: Хорошо
- 5-10%: Плохо (результаты не привлекают)
- < 5%: Очень плохо

Сравнение поисков:

Поиск: "iPhone 15"        CTR: 25%  ✓ Хорошо
Поиск: "cheap phone"      CTR: 8%   ✗ Плохо
Поиск: "laptop for gaming" CTR: 12% ⚠️ Среднее

Вывод: Вторая категория товаров плохо представлена,
нужны улучшения в результатах для запроса "cheap phone"

2.2 Position Bias (Влияние позиции на клики)

Определение: На какие позиции в результатах наибольше кликов.

Поиск: "iPhone 15"

Позиция    Результат           Клики  Процент
──────────────────────────────────────────────
1          iPhone 15 Pro Max    450    45%  ← Позиция 1 получает большинство
2          iPhone 15 Pro        350    35%
3          iPhone 15            120    12%
4          iPhone 15 Plus       50     5%
5-10       Другие              30     3%

Часто мы видим, что позиция 1-3 получают 90%+ кликов
Это нормально, но нужно проверить:
- Релевантен ли результат #1?
- Не ли там парализованные/дешёвые товары?

Инструмент для анализа:

# Анализ распределения кликов по позициям
import pandas as pd

df = pd.read_csv('search_results.csv')

clicks_by_position = df.groupby('position')['clicks'].sum()
clicks_by_position_pct = clicks_by_position / clicks_by_position.sum() * 100

print("Клики по позициям:")
for pos, pct in clicks_by_position_pct.items():
    print(f"Position {pos}: {pct:.1f}%")
    if pct < 1:
        break  # Позиции дальше 1% можно игнорировать

2.3 Mean Reciprocal Rank (MRR) — Позиция первого релевантного результата

Определение: В среднем на какой позиции находится первый правильный результат.

Формула: MRR = средний(1 / позиция_первого_релевантного)

Пример:
Поиск 1: "iPhone" → релевантный результат на позиции 1
  → 1/1 = 1.0

Поиск 2: "iPhone" → релевантный результат на позиции 3
  → 1/3 = 0.33

Поиск 3: "iPhone" → релевантный результат на позиции 5
  → 1/5 = 0.2

MRR = (1.0 + 0.33 + 0.2) / 3 = 0.51

Нормы:
- MRR > 0.8: Отлично (результат на позициях 1-2)
- MRR 0.6-0.8: Хорошо (на позициях 1-3)
- MRR < 0.6: Плохо (релевантный результат далеко)

Интерпретация: Если MRR = 0.51, то в среднем релевантный результат на позиции ~2.

2.4 Normalized Discounted Cumulative Gain (NDCG@K)

Определение: Как хорошо ранжированы результаты топ-K результатов.

Теория сложная, но суть простая:
- NDCG@5 = оценка качества первых 5 результатов
- NDCG@10 = оценка качества первых 10 результатов

Шкала: 0-1
- > 0.8: Отлично
- 0.6-0.8: Хорошо
- 0.4-0.6: Плохо
- < 0.4: Очень плохо

Пример:
NDCG@5 = 0.85  ✓ (первые 5 результатов хорошо ранжированы)
NDCG@10 = 0.72  ✓ (но с 5 по 10 позицию качество падает)

2.5 Query Intent Coverage (Покрытие намерений пользователя)

Определение: Понимает ли поиск, что хочет пользователь.

Пример:
Пользователь: "дешёвый телефон"

✗ Плохо:
- Показывает только дорогие флагманы
- Не понимает слово "дешёвый"

✓ Хорошо:
- Показывает бюджетные телефоны
- Может даже указать фильтр "Цена: < 300$"

МЕТРИКА: % поисков, где поисковик правильно интерпретировал intent
Нормы: > 80%

Слой 3: CONVERSION METRICS (Конверсия)

3.1 Search to Buy Conversion Rate (Процент поисков, ведущих к покупке)

Определение: Сколько % поисков приводят к совершённой покупке.

МЕТРИКА: Purchases from search / Total searches * 100%

Пример:
10,000 поисков
400 покупок (прямо из поиска)
Search to Buy CVR = 4%

Нормы:
- > 3%: Отлично
- 2-3%: Хорошо
- 1-2%: Приемлемо
- < 1%: Плохо

Интерпретация: 4% — это отлично.
Это означает, что поиск помогает пользователям найти и купить.

3.2 Average Order Value from Search (Средняя стоимость заказа)

Определение: Какова средняя сумма заказов от пользователей, которые нашли товар через поиск.

Примеры:
Поиск "iPhone 15" → AOV = $800
Поиск "case for phone" → AOV = $20
Поиск "cheap phone" → AOV = $150

Интерпретация:
- Если AOV для "дешёвых" поисков низкий, это нормально
- Если AOV для "дорогих" поисков ниже, чем в категориях,
  то поиск может улучшить качество результатов

3.3 Repeat Search Rate (Повторные поиски)

Определение: Сколько % пользователей ищут снова после первого поиска.

МЕТРИКА: Users with 2+ searches / Users with 1+ searches * 100%

Пример:
1000 пользователей выполнили поиск
300 выполнили второй поиск
Repeat Search Rate = 30%

Интерпретация:
- 30% — в норме, люди уточняют свой запрос
- > 50% — это может означать, что первые результаты
  не подходили и люди переформулировали
- < 10% — люди находят сразу и не ищут дальше

Слой 4: QUALITY METRICS (Скорость и качество)

4.1 Search Latency (Время ответа поиска)

Определение: Сколько миллисекунд поиск ждёт, чтобы вернуть результаты.

МЕТРИКА: Time from query to results

Нормы (P95):
- < 100 ms: Отлично ✓ (пользователь не заметит задержку)
- 100-300 ms: Хорошо
- 300-500 ms: Приемлемо
- > 500 ms: Плохо ✗ (пользователь заметит лаг)

Пример:
Если пользователь печатает "i", ждёт результаты > 500ms,
он может думать, что приложение сломалось

Оптимизация:

  • Кэширование популярных запросов
  • Использование индексов в БД
  • Асинхронные запросы

4.2 No Results Rate (Процент запросов без результатов)

Определение: Сколько % поисков возвращают 0 результатов.

МЕТРИКА: Searches with 0 results / Total searches * 100%

Пример:
1000 поисков
50 без результатов
No Results Rate = 5%

Нормы:
- < 2%: Отлично (каталог полный)
- 2-5%: Хорошо
- 5-10%: Приемлемо
- > 10%: Плохо (много нулевых результатов)

Если > 10%, нужно:
- Добавить товары в каталог
- Улучшить поиск (может быть, опечатки не обрабатываются)
- Добавить fuzzy matching ("iPhone" вместо "iphome")

4.3 Typo Correction Rate (Исправление опечаток)

Определение: Сколько % запросов с опечатками были исправлены.

Примеры:
Пользователь: "iphome" → Система: "Вы имеете в виду 'iPhone'?"
Пользователь: "samsng" → Система: "Вы имеете в виду 'Samsung'?"

МЕТРИКА: Corrected typos / Detected typos * 100%

Нормы: > 70% (большинство опечаток исправляются)

Интегральные метрики

5.1 Search Quality Score (Композитная оценка)

# Я использовал эту формулу:
Search_Quality = (
    (1 - abandon_rate) * 0.25 +       # 25% — используемость
    (ctr / max_ctr) * 0.25 +          # 25% — привлекательность
    (ndcg_10 / 1.0) * 0.25 +          # 25% — релевантность
    (min(latency, 100) / 100) * 0.25  # 25% — скорость
)

# 0-1 scale
# > 0.8 = Отличный поиск
# 0.6-0.8 = Хороший поиск
# 0.4-0.6 = Приемлемый поиск
# < 0.4 = Плохой поиск

Реальный пример: Анализ поиска в e-commerce

Контекст: E-commerce приложение с поиском товаров

ДАШБОАРД КАЧЕСТВА ПОИСКА
═════════════════════════════════════════════════

📊 Overall Search Quality: 0.72 (Good)

🔍 USAGE METRICS:
├─ Search Usage Rate: 42% (Норма: > 50%) ⚠️
├─ Searches per Session: 1.2 (Норма: 1-2) ✓
└─ Abandon Rate: 22% (Норма: < 20%) ⚠️

💎 RELEVANCE METRICS:
├─ CTR: 18% (Норма: > 15%) ✓
├─ MRR: 0.78 (Норма: > 0.8) ✓
├─ NDCG@5: 0.82 (Норма: > 0.8) ✓
└─ Intent Coverage: 85% (Норма: > 80%) ✓

💰 CONVERSION METRICS:
├─ Search to Buy CVR: 3.2% (Норма: > 3%) ✓
├─ AOV from Search: $145 (vs $120 в категориях) ✓
└─ Repeat Search Rate: 35% (Норма: 20-40%) ✓

⚡ QUALITY METRICS:
├─ Search Latency: 120ms (Норма: < 100ms) ⚠️
├─ No Results Rate: 4.2% (Норма: < 5%) ✓
└─ Typo Correction: 72% (Норма: > 70%) ✓

🎯 PROBLEMS IDENTIFIED:
1. Search Usage Rate ниже (42% vs 50%)
   → Может быть, категории лучше видны
   → Нужно улучшить видимость поиска

2. Abandon Rate выше (22% vs 20%)
   → Результаты могут быть релевантнее
   → Или пользователи не находят то, что ищут

3. Search Latency выше (120ms vs 100ms)
   → Нужна оптимизация БД
   → Кэширование популярных запросов

📈 ACTION PLAN:
1. (P0) Оптимизировать Search Latency (120 → 80 ms)
   Deadline: 1 неделя

2. (P1) Улучшить видимость поиска
   (сделать кнопку поиска более заметной)
   Deadline: 2 недели

3. (P2) Добавить умные рекомендации
   ("Вы может быть имели в виду...")
   Deadline: 1 месяц

Результаты после улучшений:

До:                    После:
────────────────────   ──────────────────
Search Usage: 42%      Search Usage: 55%   ✓
Abandon Rate: 22%      Abandon Rate: 16%   ✓
Latency: 120ms         Latency: 85ms       ✓
Search Quality: 0.72   Search Quality: 0.85 ✓
Search CVR: 3.2%       Search CVR: 4.1%    ✓

Итоговый чеклист метрик поиска

  • Usage: Используют ли люди поиск? (Usage Rate > 40%)
  • Relevance: Подходят ли результаты? (CTR > 15%, MRR > 0.8)
  • Conversion: Покупают ли найденное? (CVR > 2%)
  • Quality: Быстро ли работает? (Latency < 100ms, No Results < 5%)
  • Feedback: Какой feedback от пользователей? (Ratings, comments)
  • Segmentation: Какие запросы работают лучше? (By category, price range)
  • Benchmark: Как vs конкурентов? (Amazon, eBay, Aliexpress)
  • Monitoring: Отслеживаю ли изменения? (Dashboard, alerts)

Главный принцип: Хороший поиск — это не просто быстрый поиск. Это поиск, который понимает намерение пользователя и помогает ему найти то, что он хочет купить.