Skip to content

A mini search engine cpp program for www.boost.org, use open source tools : boost、cppjieba、jsoncpp、cpp-httplib、jQuery.

Notifications You must be signed in to change notification settings

Grotherdieck/A-Search-Engine-Program-for-www.boost.org

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

一、这是什么?

  是一个针对boost官网的简易站内搜索引擎项目,并且支持下载网页的HTML文件更新搜索引擎内容,boost作为cpp的准标准库,但是它的官网没有搜索功能,用起来不是很方便。

  主要使用的语言:

  • 服务端:C++:对下载的HTML文件去标签并提取正文摘要拼接url、根据清洗后的数据并利用分词工具cppjieba建立正排索引和倒排索引、提供搜索功能、利用cpp-httplib接受http请求并利用jsoncpp序列化后的搜索结果.
  • 网页端:Javascript:控制html页面动画效果、获取用户搜索内容、利用ajax将用户搜索内容作为http请求发送给服务端、获取服务端返回的json串并展示结果。

  使用的第三方开源工具:cpp准标准库boostcppjiebajsoncppcpp-httplibjQuery

  对于实现的详细细节,可以看我的博客:Router的博客

二、最终效果

三、如何在你的服务器上部署它

  我们的服务端环境是Centos7.6,建议保持这个版本。

I、安装boost库

  一条shell命令:

sudo yum install boost-devel -y

II、安装jsoncpp

  一条shell命令:

sudo yum install -y jsoncpp-devel

III、更新gcc

  因为cpp-httplib的源代码用了些比较新的cpp语法,而centos7.6原版的gcc版本为4.8.5,需要至少更新到7,可以使用以下shell命令:

sudo yum -y install centos-release-scl scl-utils-build
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
scl enable devtoolset-9 bash // 仅本次对话有效

IV、编译项目

  使用make:

make clean;make

V、运行

  我们这里使用的是712端口,你也可以在http_sever.cc文件中在svr.listen("0.0.0.0", port)调整端口为其他端口,记得要开放你选的端口。

  然后使用以下shell命令:

./parser// 数据清洗
nohup ./http_server > log/log.txt 2>&1 &// 后台运行服务端程序

  在浏览器中输入ip:port即可访问。

VI、更新搜索引擎的网页资源

  下载网页的html文件到目录newhtml下,命名html文件为url.html,这里的url不包括诸如http://这种前缀。

  关闭原进程并重新运行:

// 启动更新程序
./update
// 利用PID关掉原进程
// Through ps -axj | head -1 && ps -axj | grep '/ http_ server'command find PID off
// 重启服务
nohup ./http_server > log/log.txt 2>&1 &// restart

About

A mini search engine cpp program for www.boost.org, use open source tools : boost、cppjieba、jsoncpp、cpp-httplib、jQuery.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages