Hybrid + columns

Явный список полей при hybrid-поиске с фильтрами.

На этой странице

Без columns API подбирает колонки сам (columnProjection: inferred). Фильтр по whatsapp отберёт компании, но не добавит поле в карточку. Решение — явный columns.

Логистика в Подмосковье с WhatsApp

  1. 1

    POST

    curl -sS -X POST "https://app.strokka.com/api/v1/companies" \
      -H "Content-Type: application/json" \
      -d '{
        "search": "логистика",
        "searchMode": "hybrid",
        "limit": 10,
        "columns": ["name", "description", "keywords", "email", "phone", "whatsapp"],
        "filters": [
          {"field": "region", "operator": "contains", "value": "Москов", "logic": "and"},
          {"field": "whatsapp", "operator": "not_empty", "value": "true", "logic": "and"}
        ]
      }'

    Ожидайте columnProjection: "explicit" и только запрошенные поля плюс id и relevance.

  2. 2

    Тот же запрос GET

    curl -sS --get "https://app.strokka.com/api/v1/companies" \
      --data-urlencode "search=логистика" \
      --data-urlencode "searchMode=hybrid" \
      --data-urlencode "limit=10" \
      --data-urlencode "columns=name,description,keywords,email,phone,whatsapp" \
      --data-urlencode "filter[region][contains][and]=Москов" \
      --data-urlencode "filter[whatsapp][not_empty][and]=true"

Сравнение

Без columns — фильтр работает, в displayFields часто нет whatsapp. С columns — строгая проекция.

Неизвестное поле → 422. Слишком частые запросы → 429.