Когда мы просим Claude Code, Codex или Cursor «починить воот эту функцию», то сначала надо понять, где этот код вообще находится. В каком файле? В какой функции? Как она называется и кто её вызывает? Через какие еще системы пролетают байтики наших данных?
За последние полвека для этой задачи придумали огромное количество инструментов: grep, текстовые индексы, полнотекстовый поиск, ctags, LSP, AST, анализ потоков данных, графы, поиск по смыслу и многое другое. Самое забавное, что весь зоопарк с нами и почти ничего из этого не умерло.
В 2026 году поиск по коду в лучших кодинговых агентах по-прежнему состоит из алгоритмов и технологий, которым пять, десять, тридцать, а иногда и больше пятидесяти лет (grep вышел в 1973 году!). И в этой огромной статье я расскажу об эволюции этих технологий, истории и философии их создания, решаемых проблемах и способе работы.
Погнали!
Читать далееПривет, Хабр! Меня зовут Александр Зевайкин, и мы с командой делаем YDB (СУБД Яндекса). Год назад я рассказывал на Хабре, как мы запустили векторный поиск, а весной — как он используется в Нейроюристе для поиска по миллионам юридических документов.
В релизе 26.3 к векторному поиску добавились полнотекстовый поиск с ранжированием и гибридный поиск, который объединяет оба вида поиска в одном SQL-запросе. Кроме того, мы доработали фильтруемый векторный индекс.
Зачем нужны оба вида поиска, хорошо видно на примере. Страховой юрист ищет «выплаты по полису 7702-345678 при переносе рейса». Номер полиса нужно найти слово в слово, а описание случая — понять по смыслу. Полнотекстовый поиск справляется с первой половиной задачи и не справляется со второй, векторный — наоборот.
Прежде чем перейти к статье, я хочу пригласить вас на вебинар «Быстро находите нужное с YDB», который проведу в прямом эфире 15 октября. На нём я покажу рецепт, как за час собрать приложение для поиска сразу по документам, тикетам, карточкам и диалогам. Готовый поиск я подключу к ИИ-ассистенту с помощью RAG, и мы вместе со зрителями посмотрим, как меняется качество ответа. Регистрируйтесь и добавляйте в календарь — всё, что я покажу на вебинаре, доступно в рамках бесплатного тарифа и можно будет сразу попробовать самим.
А под катом в этой статье я отвечу на шесть вопросов о гибридном поиске:
1. Почему одного вида поиска недостаточно и чем два вида дополняют друг друга.
2. Что теряет бизнес, когда поиск работает отдельно от СУБД, и как оба индекса стали таблицами YDB.
3. Как сделать инвертированный индекс в виде распределённой таблицы и что добавляет к нему ранжирование по BM25.
4. Что происходит с каждым индексом при записи и как индекс объединяется с фильтрацией.
5. Как две выдачи объединяются внутри одного плана запроса.
6. Чем гибридный поиск помогает рекомендательным системам и чем измеряют результат.
Читать далееЯ задал пяти нейросетям с включённым поиском 20 вопросов покупателя услуги продвижения и выписал домены из ссылок под ответами. Вышло 211 сайтов, и на 161 из них сослалась только одна нейросеть. Сайтов, на которые ссылаются три нейросети и больше, всего 17, и они стоят в 79% ответов со ссылками. Два из них, Sostav и vc.ru, — больше чем в половине. Через шесть недель девять сайтов из этих 17 снова оказались общими для трёх нейросетей и больше.
Читать далееЗа 35 лет в ИТ я поработал с производством, розницей и сервисными командами. Где-то внедрял учёт, где-то автоматизировал заявки, где-то помогал людям освоить систему, которую ещё вчера никто не видел. Обучать приходилось постоянно: операторов, мастеров, менеджеров, руководителей.
Читать далееРейт-лимит — это не ограничение скорости. Это бюджет, и тратишь его не ты один. Разбор на Telegram Bot API, Redis и одном наивном планировщике 2023 года.
Читать далееЕсли вы застали конец 90-х — начало 2000-х в сознательном возрасте, то можете помнить про одну любопытную технологию. Она называлась IrDA и помогала передавать информацию между гаджетами тех лет. Например, между мобильным телефоном и ноутбуком.
Поначалу красное окошечко было признаком статуса. Например, в 2000 году Nokia выпустила свою легенду 3310 и у 3310 этого окошка не было. А вот у Nokia 6110 конца 1997 года — было. Так рынок и делился: темно-красное стеклышко на торце означало «модель выше среднего», его отсутствие — «массмаркет». Хотя чем дальше, тем больше устройств обзаводились заветным портом.
И к 2003 году такое стеклышко было более чем у половины моделей телефонов, почти в каждом ноутбуке и почти во всех карманных компьютерах. Это уже превращалось в обязательный атрибут гаджета.
А потом все. Куда-то пропало то стеклышко. Не буду раздувать загадку на пустом месте: IrDA вытеснили главным образом Bluetooth и несколько его собратьев. Интрига тут в другом.
Если вы думаете, что инфракрасный порт проиграл Bluetooth в гонке за скорость, у меня для вас сюрприз. По спецификациям IrDA была быстрее все годы, что они прожили бок о бок. Четыре мегабита против 0,7 в 1999-м, шестнадцать против трех в 2005-м. Собственное радио Bluetooth, без помощи Wi-Fi, до сих пор не разгоняется быстрее трех мегабит.
И тем не менее IrDA с сотнями миллионов устройств исчезла быстрее пейджера и быстрее дискеты, хотя по самым заметным табличным характеристикам — цене и скорости — долго выглядела сильнее конкурентов.
Читать далееЭта книга для всех, кто хочет, чтобы слова в интерфейсах работали на бизнес. Насущные вопросы бизнеса: «Как привлечь и удержать пользователей? Как завоевать аудиторию? Как повысить конверсию?» Короткий ответ на все эти вопросы: «Словами!». Да, обычные слова можно и нужно конвертировать в деньги.
Каждый день мы принимаем сотни цифровых решений: делаем покупки, играем в игры, оплачиваем проезд или просто листаем ленту смартфона. И в большинстве случаев мы даже не замечаем, как именно мы принимаем эти решения. В реальности за каждым нажатием кнопки, каждым переходом на новый экран и каждым оформленным заказом стоят слова - те самые UX-тексты, которые целенаправленно подталкивают нас или, наоборот, сбивают с толку.
Как тексты помогают принимать решения?В ИТ-компании фонд оплаты труда — главная статья расходов, и блокировка расчетного счета бьет в первую очередь по нему. Деньги на счете есть, а зарплатная платежка не уходит. Ходовое объяснение — «зарплата в третьей очереди, налоги в пятой, значит, людям заплатят раньше» — неверно. Поручение налоговой на списание задолженности стоит в третьей очереди статьи 855 ГК вместе с зарплатной платежкой, и кто из них пройдет первым, решает не справедливость, а календарь: чей документ раньше попал в банк. Разберу пять оснований блокировки по статье 76 НК, три условия письма ФНС от 17.03.2026, при которых банк может провести зарплату, очередность списания с единого налогового счета и что делать бизнесу в первые сутки. Отдельно — судебная практика о сроках снятия блокировки и о процентах, которые инспекция платит за просрочку.
Читать далееВсем привет.
Да, эта статья про гейм‑дев, ИИ и вайбкодинг, но не спешите переключаться и нащупывать мышку, чтобы поставить минус.
Я не являюсь ни апологетом ИИ, ни ярым его критиком, и в этой статье не будет восхищения ИИ, его возможностями и качеством кода, равно как не будет и критики. Здесь вообще не будет никаких выводов, только то, что я делал и за чем наблюдал сам. А уж выводы каждый сделает самостоятельно. И да, эта статья сгенерирована исключительно человеком (спойлер - кроме обложки), хотите верьте, хотите нет.
Если все еще интересно — добро пожаловать!
Читать далееНовый год и новый юбилей: 300 выпусков Mindscape с обычной нумерацией! По традиции мы записываем сольный выпуск, и что может быть лучше темы природы времени? Физики и философы так часто предполагали, что время - своего рода иллюзия, что вера в его фундаментальность стала почти старомодной. Это вопрос, о котором, несмотря на его формулировку, физика может сказать кое-что важное, до чего большинство философов пока не добрались. Я расскажу об идеях из квантовой механики и квантовой гравитации, которые имеют отношение к вопросу о том, фундаментально ли время или оно эмерджентно, а также о последствиях каждого из этих вариантов.
Читать далееВам нужна эта статья, если вам не хватает знаний, чтобы ответить на эти вопросы:
• Чем отличается new expression от operator new
• Что такое placement new, какой у него синтаксис, и выделяет ли он память
• В каких случаях и зачем нам может понадобиться вызывать деструктор вручную
• Когда использовать std::launder
• Почему какие-то типы можно копировать через memcpy, и ими можно сразу пользоваться, а для других это будет UB?
• Что вы реально можете кастить через reinterpret_cast
• Почему стандарт C++ такой запутанный и бесчеловечный
Пишу как практик. Это не юридическая консультация, а понятное объяснение, как сделать нормально по 152-ФЗ.
Типичный вечер в чате 5 «Б». Классный руководитель пишет: «Родители, кто болел на прошлой неделе, пришлите справки, мне нужно закрыть пропуски». Через десять минут в чате семь фотографий, и на двух из них виден диагноз. Учитель отвечает: «Спасибо, приняла». Никто не хотел плохого, а сведения о здоровье двух детей уже открыты всему чату.
И вот вопрос, который в такой переписке никто не задаёт: а кто в этом чате оператор персональных данных? Школа, учитель или родитель, который три года назад нажал «Создать группу»? От ответа зависит, кому объясняться, если одна из мам напишет жалобу в Роскомнадзор.
Вокруг школьных чатов сложилось несколько удобных убеждений. Проверьте, какие из пяти живут в вашей школе — от «чат не наш» до «удалил, и ничего не было».
Читать далее