Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RIF - Rapid Info Finder

Поисковый движок по локальным файлам(продвинутый аналог grep)

Идея

Искать подстроки текста разными способами за O(n) без предварительной индексации. Особенности:

  • 2 режима, точный поиск и поиск по синонимам
  • Поддержка wildcards в точном поиске
  • Поддержка синонимического поиска при помощи морфологического анализа и дерева синонимов с сохранением O(n) сложности поиска
  • ICU для независимости от кодировки входного файла
  • Поддержка текстовых документов, docx, pdf и оптического распознавания текста для pdf

Использование

  1. Скачать архив RIF.rar последнего релиза
  2. Разархивировать его в C:/
  3. Запустить RIF.exe в C:/RIF/RIF.exe

Меню

Технические детали

  • Язык: C++23
  • std::generator для ленивого чтения docx файлов
  • Алгоритмы для умного поиска
  • Многопоточность

Производительность

Таблица 1: Обычный поиск (Exact Match + Wildcards)

| Потоки | Время (мс) | Скорость (МБ/с) | Ускорение (Scaling) |
|--------|------------|-----------------|---------------------|
| 1      | 315 мс     | 107 МБ/с        | 1.0x                |
| 5      | 64 мс      | 528 МБ/с        | 4.9x                |
| 10     | 45 мс      | 751 МБ/с        | 7x                  |

Таблица 2: Поиск с синонимами + обычный поиск (Synonyms + Stemming)

| Потоки | Время (мс) | Скорость (МБ/с) | Ускорение (Scaling) |
|--------|------------|-----------------|---------------------|
| 1      | 671 мс     | 50 МБ/с         | 1.0x                |
| 5      | 160 мс     | 211 МБ/с        | 4.2x                |
| 10     | 119 мс     | 284 МБ/с        | 5.6x                |

📚 Third-party Libraries & Contributors

Core & System

  • ICU — International Components for Unicode.
  • ZLIB — A mass-appeal data compression library.

Graphical User Interface (GUI)

  • Dear ImGui — Bloat-free Graphical User interface for C++.
  • GLFW — A multi-platform library for OpenGL, Window and Input.
  • Native File Dialog (NFD) — A tiny cross-platform native file dialog library.
  • FreeType — A freely available software library to render fonts.
  • HarfBuzz — A software library for shaping Unicode text.

OCR & Document Processing

  • Tesseract OCR — Open source Optical Character Recognition (OCR) Engine.
  • Leptonica — An open source library for image processing and image analysis applications.
  • MuPDF — A lightweight PDF, XPS, and E-book viewer.
  • Gumbo Parser — An HTML5 parsing library in pure C.

Image Formats

  • OpenJPEG — An open-source JPEG 2000 codec.
  • libjpeg-turbo — A JPEG image codec that uses SIMD instructions to accelerate baseline JPEG compression and decompression.
  • jbig2dec — A decoder library for the JBIG2 image compression format.

About

High-Performance Search Engine In Local Files

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages