Loading AI tools
Из Википедии, свободной энциклопедии
Reindexer — NoSQL in-memory база данных общего назначения с открытым кодом. Основная цель Reindexer — это обеспечивать быстрый поиск по сложным запросам.
Эту статью предлагается удалить. |
В статье есть список источников, но не хватает сносок. |
Reindexer | |
---|---|
Тип | документоориентированная СУБД |
Написана на | C++, C, Go и Vue.js |
Состояние | Active |
Лицензия | Apache License 2.0 |
Сайт | reindexer.io |
Reindexer сочетает в себе два подхода по структуре хранения данных:
Reindexer состоит из ядра, написанного на C++, API написанного на Go и пользовательского интерфейса, написанного на Vue.js.
Прототип Reindexer появился в конце 2016, как альтернатива Elasticsearch для нужд платформы интерактивного телевидения Wink компании ПАО Ростелеком. К середине 2017 была выпущена первая рабочая версия Reindexer с хранилищем на основе LevelDB/RocksDB и поддержкой полнотекстового поиска. В этом же году код был опубликован на GitHub.
В 2021 году, Reindexer отдаёт более 150 млн результатов на крупнейших российских сайтах, таких как Wink, Ситилинк и ПИК
Для выполнения запросов в Reindexer есть 6 типов индексов:
В Reindexer используется метод «ленивого» построения индексов при добавлении записей в таблицу. Таким образом, сначала происходит добавление записи, тогда как индексы достраиваются, только когда они требуются для выполнения запроса[1].
Reindexer — полностью in-memory база данных, что означет, что данные, должны находиться в оперативной памяти. Таким образом, основное назначение дискового хранилища — это загрузка данных на момент начала работы системы. При добавлении записей, данные пишутся на диск в фоновом режиме.
В качестве программно-аппаратной части дискового хранилища Reindexer может использовать LevelDB или RocksDB.
У Reindexer существует два собственных компонента:
Оба компонента поддерживают поиск транслитом и поиск с неверной раскладкой клавиатуры. Ранжирование результатов поиска происходит с учетом статистических вероятностей (BM25) и точности совпадения. Reindexer позволяет настраивать формулу ранжирования, в зависимости от задачи.
Кроме того, существует возможность полнотекстового поиска по нескольким таблицам, с выдачей результатов, отсортированных по релевантности.
В Reindexer реализована «ленивая» индексация. Полнотекстовый индекс строится на первом запросе в полнотекстовом поле. Индексирование использует несколько потоков, что позволяет эффективно расходовать ресурсы современных многоядерных процессоров и получать высокую скорость процесса. На современном оборудовании скорость индексации составляет ~ 50 МБ / сек.
Reindexer поддерживает аналог Join для NoSQL баз данных, — это функциональность, позволяющая добавить в каждый результат ответа поле, содержащее компоненты из присоединяемой таблицы. При этом, поддерживаются методы inner и left join Кроме того, есть возможность объединить несколько Join использую логические операторы.
Данные в Reindexer хранятся в области памяти под управлением C++, и при получении выборки в Go-приложении происходит десериализация результатов в Go структуру.
Object cache в Go части Reindexer решает задачу переиспользования уже десериализованных объектов, без расходования времени на повторную десериализацию.
Reindexer доступен для систем OSX, Linux и Windows.
Для отображения интерактивной документации REST API, Reindexer использует Swagger
Reindexer поставляется вместе с встроенным web-интерфейсом[2], написанном на Vue.js.
В 2021, дизайн UI Reindexer получил награду Red Dot в номинации Brands & Communication Design[3].
Reindexer поддерживает GRPC API начиная с версии 3.0.
Инструмент командной строки поддерживает следующие функции:
Инструмент командной строки может работать в двух режимах. С сервером через сеть и напрямую с хранилищем, в так называемом без серверном режиме.
Reindexer выходит под лицензией Apache License 2.0
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.