Идеальная система подбора квартир

Идеальная система подбора квартир

В проекте использовали

  • Apache Solr
  • Php

Клиент пришел с проблемой

Компания хотела получить систему подбора квартир на сайте, которая могла бы учитывать все возможные параметры, заданные клиентом. Например: цена, этаж, наличие телевизора, техники, детской площадки. При этом фильтр должен подбирать похожие квартиры, которые удовлетворяют заданным параметрам не только полностью, но частично, по большинству критериев.

Проект запомнился своими сложными интерфейсами и большими формами. Для любых сведений о квартире есть поля, галочки, переключатели. И фильтровать квартиры можно как угодно. А еще в проекте интересная система ранжирования, которая подсказывает подходящие варианты.

фото
Олег ЗоринTeam leader

Всегда есть особенности

Для максимально точного результата такого поиска, нужно было учесть все существующие параметры, важные для клиентов. А также найти решение, которое будет быстрым и при этом точным, чтобы выдавать максимально релевантную выборку для заданных параметров.

Как мы это сделали

Мы собрали все возможные параметры квартир и разбили их по группам, определив категории для разработки фильтров которыми сможет оперировать пользователь. Всего получилось 150 параметров и 8 групп. Система разрабатывалась так, чтобы в любой момент можно было добавить новый параметр выбора.

Для каждого параметра мы выбрали 3 весовых коэффициента. Максимум – если система сочтет параметр важным для клиента (те, которые он сам выбрал в фильтре), средний вес – для зависимых от выбранных параметров, минимум – для всех остальных.

Мы использовали поисковый движок Apache Solr, который позволяет быстро выполнять операции в больших базах данных. Кроме того, он передает функции в качестве полей для выборки и сортировки. В результате тесты по работе движка по выборке на примере 15000 квартир для различных наборов фильтров показали скорость выдачи в пределах 120-150 мс.

В результате
Клиент получил интеллектуальную систему подбора жилья, которая формирует выборку квартир по наиболее важным параметрам для клиента.