Skip to main content
Восемь этапов · Каждое публичное объявление · Всегда свежие данные

Как каждый автомобиль оказывается здесь.

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

Этапы пайплайна
8
поиск → индекс
Активные объявления
11k+
объединены · без дублей
Цикл обновления
много·раз·в·день
инкрементально · непрерывно
Наблюдения цен
700k+
история append-only

Одна лента. Всегда свежая. Ничего не теряется.

Мы индексируем публичные объявления так же, как поисковая система индексирует открытый web. Каждое объявление сравнивается с остальными, очищается от дублей, дополняется характеристиками и налоговыми данными, которых нет в самом объявлении, и отслеживается во времени. История цены сохраняется даже тогда, когда объявление исчезает из интернета.

Ищите по всему рынку

Хватит прыгать между вкладками. Все публичные автомобильные объявления Кипра — в одной строке поиска, с одними фильтрами, одной оценкой и одним диапазоном справедливой цены. Неважно, где объявление было опубликовано изначально.

Всегда свежие данные

Рынок движется. Индексатор работает непрерывно, поэтому новые объявления, снижения цен и снятые публикации появляются в течение часов, а не недель. Вы видите рынок сейчас, а не снимок вторника трехнедельной давности.

Ничего не теряется

Каждое наблюдение записывается. Когда объявление исчезает, история не исчезает вместе с ним. Первая запрошенная цена, каждое снижение, срок до исчезновения — все сохраняется. Теперь у рынка есть память.

От сырого объявления до результата поиска — за восемь этапов.

Каждое объявление проходит через одни и те же восемь станций. Каждая станция — маленькая и точная идея, которая заслужила свое место, потому что ловит отдельный класс ошибок, когда-то болезненно попадавших в индекс.

01 Обнаружить найти объявления 02 Проверить отсеять мусор 03 Нормализовать канонический вид 04 Разобрать извлечь теги 05 Обогатить добавить характеристики 06 Склеить дубли объединить двойники 07 Отслеживать история цены 08 Индексировать готово к поиску
ЭТАП 01

Обнаружить

Находим новые публичные объявления по мере появления. Только то, что уже видно любому человеку с браузером. Без закрытых зон, приватных лент и входа в аккаунт.

ЭТАП 02

Проверить

Отсекаем невозможные данные на входе. Годы из будущего, пробег в полмиллиона километров, названия городов вместо описаний — весь такой мусор ловится до попадания в индекс.

ЭТАП 03

Нормализовать

Одна каноническая форма для марки, модели, типа кузова и топлива, несмотря на варианты написания, коды шасси и языковые особенности. «W211» и «E-Class» наконец считаются одним и тем же.

ЭТАП 04

Разобрать

Достаем структурированные теги из свободных описаний. Пробег, спрятанный в предложении, тип топлива в середине абзаца, упоминания сервисной истории, слова про аварии. Поддерживаются английский, греческий, Greeklish, русский и Russlish.

ЭТАП 05

Обогатить

Добавляем характеристики, которых нет в объявлении: мощность, крутящий момент, расход топлива, снаряженную массу, категорию дорожного налога Кипра — все из публичных автомобильных баз. Объявление становится записью об автомобиле.

ЭТАП 06

Дедупликация

Три объявления об одном и том же реальном автомобиле? Одна запись об автомобиле, одна временная линия. Отпечатки изображений и spec match находят двойников. Жесткие правила запрета не дают склеить разные машины по ошибке.

ЭТАП 07

Отслеживать

Append-only журнал наблюдений. Каждая увиденная цена, каждое изменение, каждое исчезновение сохраняются. Лента показывает сегодняшний день. История показывает весь сюжет.

ЭТАП 08

Индексировать

Заранее считаем все, что нужно поиску: обогащение, оценка, теги, дорожный налог. Все попадает в горячий индекс. Теплые запросы возвращаются меньше чем за полсекунды. Ценовой движок тоже подключается здесь.

Обнаружение: только публичные объявления.

Индексатор ведет себя как вежливый читатель. Он смотрит те же публичные страницы, что и покупатель, в умеренном темпе и с нормальной гигиеной запросов. Без приватных аккаунтов, закрытых зон и сбора персональных данных.

На вход попадает ровно то, что уже есть в открытом web: публичное объявление. Марка, модель, год, пробег, цена, публичные фотографии и свободное описание от продавца. Это весь входной набор данных.

Все, что находится за входом в аккаунт, помечено как приватное или похоже на персональные контактные данные, остается нетронутым. Индекс отражает публичный рынок. Точка.

ПУБЛИЧНЫЕ ОБЪЯВЛЕНИЯ марка · модель · год · пробег · цена марка · модель · год · пробег · цена марка · модель · год · пробег · цена БЕЗОПАСНО ПО ДИЗАЙНУ ✓ только публичное ✓ без входа ✓ без сбора PII ✓ вежливый темп объявления поступают → по одной канонической записи на каждое
ШЛЮЗ ПРОВЕРКИ год ≤ сейчас+1 год ≥ 1900 пробег < 1,000,000 цена ≥ €500 в описании есть цифры блок неавтомобильных слов ✓ принять год = 2031 575 млн km «Limassol» сырье ~1,5% входящих записей отскакивает здесь · ловит 100% известных невозможных случаев

Отсекаем невозможные данные на входе.

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

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

Одно каноническое имя на автомобиль.

Один и тот же автомобиль появляется под пятью разными именами: коды шасси в скобках, варианты бренда в четырех написаниях, дилерские сокращения, смесь языков. Без нормализации ищешь одну модель — и теряешь половину рынка.

Движок правил сводит каждый вариант к одной канонической идентичности по марке, модели, кузову и типу топлива. Поэтому один поиск по «E-Class» находит все варианты, а ценовой движок корректно сравнивает их между собой.

Mercedes-Benz W211 MERCEDES E CLASS Mercedes Benz E-Class Mercedes E220 / W211 μερσεντες E class КАНОНИЧЕСКОЕ MERCEDES · E-CLASS 100+ правил · коды шасси · варианты написания · языковые смеси · обработка тире и запятых
СЫРОЕ ОБЪЯВЛЕНИЕ марка Audi модель A4 год 2018 пробег 82,000 km цена €18,500 топливо дизель двигатель 2.0 обогатить ОБОГАЩЕННАЯ ЗАПИСЬ + мощность 190 HP + момент 400 Nm + 0–100 7.6 s + расход топлива 5.1 l/100 + снаряженная масса 1,560 kg + категория дорожного налога эра CO₂ + дорожный налог €225 / год + теги описания сервис · история + качество фото 12 фото · HD + оценка сделки 82 / 100

Добавляем данные, которых не было в объявлении.

Объявление сообщает только то, что продавец решил написать. В нем редко есть мощность, крутящий момент, расход топлива, снаряженная масса или будущий счет за дорожный налог в январе. Индексатор добавляет это из публичных автомобильных баз сразу после распознавания модели.

Калькулятор дорожного налога Кипра встроен: три эпохи регистрации, диапазоны CO₂, надбавки Euro. Для импорта из UK показываются две ставки, чтобы через три недели после покупки не было неприятного сюрприза.

Когда объявление выходит из этапа обогащение, это уже не просто объявление. Это полностью описанный автомобиль.

Один автомобиль — одна временная линия.

Один и тот же реальный автомобиль часто появляется сразу в трех объявлениях. Разные цены, разные фотографии, разные описания. Без дедупликации каждый поиск возвращает одну машину по пять раз, а график цены выглядит как шум.

Дедупликатор объединяет двойников по двум группам сигналов: отпечатки изображений (перцептивные хеши по публичным фотографиям, при этом исходные изображения не хранятся как персональные данные) и spec match (год + марка + модель + пробег + двигатель достаточно близки, чтобы считать это одной машиной).

Жесткие правила запрета останавливают ложные склейки. Если не совпадает кузов, топливо, год или цвет, объединение отклоняется, даже если все остальные сигналы кричат «match». Разные автомобили остаются разными автомобилями. Всегда.

объявление #A 2018 A4 · 82,000 km €18,500 12 фото объявление #B 2018 A4 · 82,000 km €18,200 10 фото · то же объявление #C 2018 A4 · 82,500 km €17,900 8 фото · то же хеш фото ✓ spec match ✓ АВТОМОБИЛЬ #v412 2018 Audi A4 3 объявления · 1 временная линия €18,500 → €17,900 ЖЕСТКИЕ ЗАПРЕТЫ кузов · топливо · год · цвет несовпадение ⇒ не объединять
дней активно → цена → появилось день 0 снижение 1 д 14 снижение 2 д 32 исчезло д 47 €18,500 · €17,900 · €17,200 · снято · сохранено как одна временная линия

Каждое наблюдение и каждое изменение сохраняются.

Слой жизненного цикла — это append-only журнал каждого наблюдения. Первая запрошенная цена, каждое следующее снижение, дни активности объявления, момент исчезновения. Ничего не перезаписывается. Ничего не забывается.

Когда объявление исчезает, это тоже сигнал. Машины, которые пропадают в течение 48 часов после снижения цены, вероятно, проданы. Машины, которые висят 90 дней, вероятно, нет. Ценовой движок читает этот поток, чтобы корректировать смещение выживших.

А покупатель получает полную историю цены, а не один снимок.

Предрассчитано. Горячо. Быстрее секунды.

Когда вы нажимаете «поиск», вы не хотите, чтобы движок начинал думать. Вы хотите ответ. Финальный этап материализует все (обогащение, оценка, теги, road tax, диапазон сделки) в горячий индекс, куда теплые запросы попадают за меньше чем полсекунды для типичных комбинаций фильтров.

Ценовой движок подключается здесь. Интерфейс просмотра подключается здесь. Уведомления по сохраненным поискам подключаются здесь. Один источник правды, много поверхностей.

Когда upstream-данные меняются, заново материализуется только затронутый срез. Инкрементально, а не ядерной перезагрузкой.

ЗАПРОС марка = Audi 2016–2020 < 0.5 s АВТОМОБИЛИ ОБОГАЩЕНИЕ ОЦЕНКИ + ТЕГИ ГОРЯЧИЙ ИНДЕКС → 342 результата · сортировка по оценке сделки · постранично

Что работает прямо сейчас.

Пайплайн — не побочный проект. Он работает непрерывно, инструментируется как инфраструктура, и каждая строка в нем заслужена через инциденты. Вот его масштаб в общих числах.

много·раз·в·день
инкрементальных обновлений в день
11k+
активных объявлений без дублей
700k+
ценовых наблюдений записано
100+
правил нормализации марок и моделей
1.3k+
дублей объявлений склеено в один автомобиль
< 0.5 s
ответ теплого запроса из индекса
5
языков разбирается (en · gr · greeklish · ru · russlish)
0
персональных данных продавцов собрано

Публичный рынок, публичные данные, легкий след.

AllCars.cy индексирует публичный рынок. Мы относимся к источникам так, как относился бы внимательный читатель, и проводим жесткую границу вокруг персональных данных. Эти правила не декларация. Они встроены в сам индексатор.

Только публичные объявления

Все, что публично видно браузеру без входа, можно читать. Все, что за закрытой стеной, нельзя. Индексатор никогда не пытается получить доступ к приватным лентам, платному контенту или зонам, где нужна authentication.

Без персональных данных

Индекс хранит факты об автомобилях, а не о людях. Никаких персональных контактов, профилирования покупателей или продавцов, отслеживания людей по сети. Dataset описывает автомобили на публичном рынке.

Вежливый темп

Запуски обновления настроены так, чтобы быть небольшой долей обычного публичного трафика и уважать сигналы платформ. Индексатор — тихий читатель, а не load test.

Право на удаление

Запрос на удаление, скрытие из индекса или source-side opt-out быстро применяется к индексу, истории и результатам поиска. Этим занимаюсь только я, напишите мне в Telegram и запись исчезнет в тот же день.

Теперь ищите по всему рынку.

Одна лента. Всегда свежая. Без дублей, обогащенная, с оценками. Тратьте внимание на автомобили, а не на вкладки.