---
Вводні думки про проблему пошуку компаній
Недавня розмова в нашому Slack-каналі стала для нас відправною точкою. Один з розробників підняв питання про повільний пошук компаній, який викликав незадоволення у користувачів. Це було особливо помітно, коли рекрутери намагалися швидко знаходити підходящих кандидатів, що безпосередньо впливало на їхню ефективність.
Чому це важливо
Проблема пошуку компаній безпосередньо стосувалася нашої команди матчингу, яка відповідала за створення успішних зв'язків між кандидатами та роботодавцями. Ми розуміли, що повільний пошук може призвести до втрати потенційних клієнтів і погіршення користувацького досвіду. Рекрутери, не отримуючи потрібні результати швидко, починали шукати альтернативи, що було для нас неприпустимо.
Конкретні проблеми пошуку
Одного разу, під час тестування, один з членів команди зауважив, що пошук за тегами компаній займав до 15 секунд. Цей час збільшувався, якщо база даних була завантажена. Наприклад, коли рекрутер вводив запит на пошук компаній з певними тегами, система іноді не встигала реагувати, і користувачі отримували повідомлення про помилку. Це створювало погане враження про платформу.
Перші спроби вирішення
Спочатку ми вирішили оптимізувати запити до бази даних, однак це не дало очікуваних результатів. Ми покращили індекси, але час відгуку практично не змінився. Врешті-решт, ми зрозуміли, що проста оптимізація запитів не вирішить проблему, і почали шукати інші підходи.
Технічне рішення — теги і кеш
Ми вирішили впровадити систему тегування і кешування, що значно покращило час відгуку. Теги дозволили нам групувати компанії за категоріями, а кешування знизило навантаження на сервер. Ось приклад реалізації кешування:
cache = {}
def get_companies_with_tags(tags):
cache_key =
---