filter_conditions — это единственный опциональный массив в теле запроса. Каждая запись переключает один мультизначный фильтр со стандартного поведения OR («совпадает хоть один») на AND («совпадают все»), либо наоборот. Фильтры, не перечисленные в массиве, сохраняют своё поведение по умолчанию.
Схема
key и operator обязательны в каждой записи. Запись только с operator молча игнорируется — глобального переопределения не существует.Почему это важно
Оператором по умолчанию является OR, потому что большинство сценариев поиска потенциальных клиентов нацелены на широкий охват: «люди в любой из этих стран», «компании, отмеченные любым из этих тегов вертикали». Для высокоточного таргетинга — «использует все изSalesforce + HubSpot + Marketo» — нужен AND.
Цена ошибки:
- Хотели AND, получили OR: ответ переполнен — вы видите компании, соответствующие только одному тегу, а не всему стеку. Легко заметить, страдает качество результатов.
- Хотели OR, получили AND: ответ недополучает результаты — обычно возвращает почти ноль строк на мультизначных фильтрах AND, потому что реальные массивы редко содержат каждое запрошенное значение. Легко заметить, выглядит как сломанный запрос.
&& (пересечение) для OR, @> (содержит) для AND. Оба индексируемы, поэтому разница в стоимости — в размере результата, а не в задержке запроса.
Поддерживаемые ключи
Точный набор ключей зависит от вызываемого эндпоинта:Рецепты
- Все технологии (компании)
- Любая из локаций + исключение
- Мультирегиональные рекламные кампании
- Люди в компаниях с несколькими технологиями
Цель: компании, использующие все из Python, PostgreSQL и Kubernetes — не только одну.Уберите запись
filter_conditions, чтобы расширить поиск до любой из трёх.Распространённые ошибки
Забыть key, отправив только operator
Забыть key, отправив только operator
Глобального переключателя «оператор по умолчанию» не существует. Каждая запись должна называть конкретный фильтр:
Ожидание, что записи будут комбинироваться
Ожидание, что записи будут комбинироваться
Записи — это независимые переопределения для каждого ключа, они не связываются в цепочку. Указание одновременно
technologies и verticals не создаёт булево выражение между ними; каждая просто задаёт оператор своего собственного массива.Комбинация между ключами фильтров всегда AND (каждый фильтр должен совпасть). Вы не можете объединить через OR два разных измерения фильтрации с помощью filter_conditions. Если вам нужен настоящий поиск OR-разных-фильтров, выполните два запроса и объедините результаты на стороне клиента.Использование AND на длинном массиве
Использование AND на длинном массиве
AND — это
column @> ARRAY[…] — должно присутствовать каждое значение. При 8+ значениях вы почти всегда получаете ноль строк, потому что реальная разметка тегами разрежена. Держите массивы с переопределением AND в пределах 2-4 значений; используйте OR для исследовательской фильтрации или фильтрации на уровне категорий.Неверный key в фильтрах компании на /people/search
Неверный key в фильтрах компании на /people/search
На Полная таблица переименования на странице People + Company Filters.
/people/search имя в people-API — company_places / company_locations. Но внутри filter_conditions[].key нужно использовать имя движка — places, locations. Переименование происходит внутри системы до того, как учитывается filter_conditions.См. также
Filters Overview
Ментальная модель — начните отсюда, если
filter_conditions для вас в новинку.People + Company Filters
Как встроить фильтры по компании в
/people/search, включая переименование ключей.Справочник Company Search
Полная схема запроса для
/companies/search (включает company_filter_conditions).Справочник People Search
Полная схема запроса для
/people/search (включает people_filter_conditions).
