GitHub заменяет поисковик кода на Blackbird на базе Rust

    0
    2


    Переработанная система поиска кода GitHub на основе Rust стала общедоступной в понедельник, обещая более быстрое и всестороннее исследование репозиториев программного обеспечения.

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

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

    GitHub, основанный в 2008 году, изначально использовал Apache Solr для поиска кода. Затем, после того как Solr был объединен с Lucene, в 2013 году компания, занимающаяся совместным кодированием, создала новый поисковый сервис с использованием Elasticsearch. Последовали сбои, и к 2020 году — через два года после того, как Microsoft приобрела компанию — началась работа над Blackbird.

    Целями проекта были: проиндексировать весь исходный код на GitHub; для поддержки добавочной индексации и удаления документов, а также для предоставления быстрых запросов точного совпадения и регулярных выражений (менее 1 секунды для 95 процентов пользователей по глобальным запросам и еще быстрее для более узких запросов); интегрироваться без информации о коде GitHub; и сделать это без увеличения требований к ресурсам существующего кластера GitHub Elasticsearch.

    Готового инструмента, способного на все вышеперечисленное, не существовало, поэтому GitHub выбрал Blackbird, написанный на Rust, как обсуждалось в феврале. В результате система может обрабатывать около 640 запросов в секунду по сравнению с примерно 0,01 запроса в секунду для ripgrep благодаря предварительно вычисленным поисковым индексам, которые сопоставляют числовые ключи со значениями, и другим архитектурным усовершенствованиям. И он может индексировать со скоростью примерно 120 000 документов в секунду.

    «Он невероятно быстр (примерно в два раза быстрее, чем старый поиск по коду), гораздо более функционален (поддерживает запросы подстрок, регулярные выражения и поиск по символам) и понимает код, ставя на первое место наиболее релевантные результаты», — пояснил Меркель.

    Помимо технической возни, необходимой для индексации и запросов к 45 миллионам репозиториев (что исключает множество избыточных ответвлений), новая поисковая система кода GitHub была дополнена улучшениями интерфейса поиска, которые показывают предложения и конкурсы, а также переработанным представлением кода, которое обеспечивает поиск, просмотр, и навигация по коду вместе.

    Результат находит определенный текст в репозиториях, работает довольно хорошо. Попробуйте найти значения, связанные с ключом «memory» в файлах конфигурации YAML для кластера Kubernetes. Поиск кода GitHub позволяет легко сосредоточиться только на файлах YAML.

    Такая точная фильтрация также полезна при попытке определить, какая конкретная часть приложения выдала конкретное сообщение об ошибке.

    Меркель говорит, что цель GitHub с новым поиском по коду и представлением кода — помочь разработчикам найти важную информацию, разбросанную по их кодовой базе, контекстуализировать эту информацию и сделать разработчиков более продуктивными. ®

    Предыдущая статьяWorld Of Warcraft: Dragonflight – Zaralek Cavern Zone Guide
    Следующая статьяSamsung Chromebook может получить динамические заставки в будущем
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.