Кончик
Если у вас есть какие-либо вопросы по работе и реализации этого проекта или у вас есть лучшие предложения по оптимизации этого проекта, вы можете связаться со мной напрямую или оставить проблему в репозитории.
Этот проект представляет собой реализацию поисковой системы на основе библиотеки Boost, целью которой является создание эффективной и точной поисковой системы специально для поиска документов Boost. Подробно описывая процесс создания поисковой системы, от предварительной обработки данных до создания индексов, обработки поисковых запросов и представления результатов, этот проект показывает, как построить полную систему поисковой системы. Стек технологий охватывает C++, библиотеку Boost, Html, CSS и JavaScript, реализуя внутреннее построение индексов и внешнее взаимодействие с пользователем. Основные функции проекта являются комплексными, а также добавлены расширенные функции, такие как статистика частоты слов, динамически обновляемые индексы и сортировка по приоритету результатов поиска, что значительно повышает эффективность и точность поиска. Это делает поисковую систему особенно подходящей для разработчиков, позволяющих быстро находить необходимую им техническую документацию при использовании библиотек Boost, что значительно повышает эффективность разработки и доступность документов.
Очевидно, что поиск большого количества документов и содержимого, содержащегося в документах, является очень трудоемким и трудоемким занятием. Если вы напрямую проходите и получаете доступ к ним один за другим, сервис в основном не будет отвечать в течение длительного времени. По этой причине необходим более быстрый и удобный способ планирования и управления большим объемом данных для достижения быстрого поиска. Создание индекса является основой решения этой проблемы.
Так называемый индекс предназначен для прикрепления к документу метки и быстрого поиска по метке. Управление метками требует гораздо меньше усилий, чем управление документами, что является основной причиной создания индекса.
Библиотека Boost — это общий термин для некоторых библиотек C++, которые предоставляют расширения стандартной библиотеки языка C++. Он разработан и поддерживается сообществом Boost. Библиотека Boost прекрасно работает со стандартной библиотекой C++ и предоставляет для нее расширенные функции. Сайт boost предоставляет большое количество документов. Внедрение поисковой системы может помочь нам точно и быстро найти нужные документы среди большого количества документов.
Серверная часть: C/C+, C++11, STL, Boost, Jsoncpp, cppjieba, cpp-httplib.
Фронтенд: html5, css, js, jQuery, Ajax.
Эффект:
Бэкэнд-эффекты:
Поскольку в проекте не реализованы краулеры, здесь принят метод загрузки данных на локальный компьютер. HTML-файл или каталог данных можно разместить в следующем каталоге.
Конкретные шаги можно найти по адресу: word.md-chapter.
boost-search-engine/search-engine/data/input
[!NOTE] Я использую следующую среду:
Linux ubuntu-linux-22-04-desktop 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:46 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
Установите CMake:
Установите Visual Studio:
Установите библиотеку Boost:
C:Librariesboost_1_75_0
cd C:Librariesboost_1_75_0
.bootstrap.bat
.b2.exe
BOOST_ROOT
в каталог, в котором установлен Boost.Установите jsoncpp:
vcpkg install jsoncpp
Настройте проект CMake:
BOOST_ROOT
).Установите доморощенного:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Установите CMake и зависимые библиотеки:
brew install cmake boost jsoncpp
Настройте проект CMake:
mkdir build && cd build
cmake ..
make
Linux (Убунту, ЦентОС)
sudo apt-get update
sudo apt-get install cmake g++ libboost-all-dev libjsoncpp-dev
sudo yum install cmake gcc-c++ boost-devel jsoncpp-devel
Настройте проект CMake:
mkdir build && cd build
cmake ..
make
Вы также можете использовать makefile
для прямой компиляции:
make
[!КОНЧИК]
- Убедитесь, что пути установлены правильно на всех платформах, особенно в Windows, где вам может потребоваться вручную указать пути к некоторым библиотекам.
- Для разных дистрибутивов Linux команды установки и доступные пакеты могут немного отличаться, поэтому настройте их соответствующим образом.
- При сборке в Windows с помощью Visual Studio обязательно выберите правильную архитектуру (x86 или x64), соответствующую версии библиотеки.
Официальные ссылки:
https://github.com/yaanywu/cppjieba
Свяжите каталог cppjieba
с каталогом boost-search-engine/search-engine/include
проекта.
Войдите в каталог cppjieba
Свяжите компонент библиотеки словаря dict
и компонент limonp
с cppjieba
.
Разберите данные.
./parser
Как показано на рисунке, операция прошла успешно. Если операция не удалась, вы можете проверить сообщение об ошибке. Возможно, конфигурация пути неверна. Вы можете самостоятельно настроить путь в коде.
Запустите службу:
Как показано на рисунке, запуск прошел успешно.
Конечно, для развертывания в фоновой службе можно использовать и другие методы, например:
nohup ./server > log/log.txt 2>&1 &
Вы также можете использовать некоторые другие методы, например tmux и т. д.
Используйте браузер для доступа к номеру порта 8081 IP. Номер порта установлен в ./src/server.cc
.
Часть журнала может быть улучшена.