Рабочий фильтр — это не длинный список слов, а несколько групп с разной ролью, и внутри группы работает ИЛИ, а между группами — И. Внутри одной группы достаточно, чтобы совпало любое слово; а разные группы должны совпасть все сразу — так фильтр и стягивается к нужным заявкам. Минус-слова поверх этого выкидывают лишнее. Перепутайте роли — и вы либо тонете в мусоре, либо не ловите ничего. Большинство проблем с фильтром — это не «мало ключей», а слова, засунутые не в ту группу.
Когда человек первый раз собирает фильтр в ФайндЛид, он обычно делает одно и то же: сваливает в одну группу всё подряд — и то, что клиент ищет, и слова-просьбы, и уточнения по нише. Получается один большой мешок, который срабатывает на любое совпадение и ловит буквально всё, где встретилось хоть одно из слов. Отсюда ощущение, что «фильтр присылает мусор». Мусор присылает не фильтр — присылает неверно разложенный синтаксис.
Из чего собран фильтр: группы слов и минус-слова
У фильтра несколько полей, и у каждого своя роль. Внутри любого поля слова связаны по ИЛИ — достаточно, чтобы совпало хотя бы одно. А между полями действует И — свой match должен найтись в каждом заполненном поле:
- «Что ищет клиент» (words) — базовые слова: только услуга или объект, без «ищу» и «нужен». Хотя бы одно слово отсюда должно быть в сообщении.
- «Как клиент просит» (key_words) — продающая добавка: слова-просьбы. Заполнено по умолчанию. Должно совпасть хотя бы одно отсюда — и одновременно хотя бы одно из «Что ищет клиент».
- «Уточнение — тема или предмет» (city_words) — доп. продающая добавка: необязательное поле. Если его заполнить, добавляется ещё одно условие И — хотя бы одно слово должно совпасть и здесь.
- «Минус-слова» (negative_words) — встретилось хоть одно, сообщение отбрасывается целиком.
Одной строкой логика выглядит так: (любое из «Что ищет клиент») И (любое из «Как клиент просит», если заполнена) И (любое из «Уточнение — тема или предмет», если заполнена) И НЕ (любое из «Минус-слов»). Внутри каждой группы — ИЛИ, то есть подходит любое одно слово, а не все сразу; И работает только между группами.
Разные вопросы. «Что ищет клиент» спрашивает, о какой услуге вообще речь. «Как клиент просит» — просит ли человек, а не рассказывает о себе. «Уточнение — тема или предмет» — точно ли это про мой сегмент. Минус-слова — а это точно не то, что мне не нужно. Пока эти вопросы не разведены по разным полям, фильтр не может работать точно: всё сваленное в одну группу связывается по ИЛИ, и любое случайное совпадение проходит.
«Что ищет клиент» — широкая группа по ИЛИ, и это нормально
В «Что ищет клиент» вы кладёте все способы, которыми человек называет саму услугу или объект. Допустим, ниша — ремонт квартир. Люди пишут по-разному: «ремонт», «мастер», «бригада», «отделка», «под ключ», «ремонт ванной». Это не разные запросы — это одно и то же на десяти языках. Все они идут сюда, и группа срабатывает,