假设有一堆词,也有一堆内容。现在想知道:
每个词的相关词有哪些?
每个词的相关内容有哪些?
每个内容的相关内容有哪些?
利用上述词与词、词与内容、内容与内容的关联,来优化页面的推荐信息,使用户和搜索引擎获得更好的浏览体验。
这些相关信息的推荐都可以通过搜索来实现,这些推荐的信息无论是写死的,还是实时查询的,还是分时间缓存的,前提是都得有个搜索引擎。(ps:windows系统目前不支持迅搜xunsearch搭建)
如何本地搭建一个搜索引擎?
直接套一个开源搜索引擎即可
开源搜索引擎有哪些?
https://www.oschina.net/project/tag/130/search-engine
本渣渣用过以下两个
相比之下推荐 Xunsearch。
因为Coreseek多年未更新,且我觉得写文档的人可能语文没学好
Xunsearch一直更新,用的人多,碰到问题解决方案比较好找,另外后端基于C/C++开发,我一直感觉跟C沾边的在性能上都比较好。所以下面十分钟在本地搭建一个搜索引擎的教程,以xunsearch为例。
xunsearch官方主页在:https://www.xunsearch.com/
10分钟本地搭建搜索引擎示例
安装
本渣渣很久之前就安装过了,步骤极其简单,直接照此处官方文档操作就行
启动xunsearch服务
本渣渣的xunsearch安装在 /Users/sunjian/ 这个目录下,执行:
/Users/sunjian/xunsearch/bin/xs-ctl.sh start
将 /Users/sunjian/ 替换成各自的xunsearch安装路径,执行后,即可启动xunsearch服务
创建项目配置文件
在 /xunsearch/sdk/php/app/ 目录下创建项目配置文件,文件名一般与项目名同名,且以 .ini 结尾
project.name:项目名称
project.default_charset:编码,一般都是utf-8
server.index 和 server.search为服务端口,直接粘贴即可
下面 [xxx] 和 type 是需要创建索引的字段名称和对应的数据类型。
比方说我抓过来一堆微信公众号的数据,放到mysql中,如下:
我希望可以通过关键词对这些公众号内容的标题 或者 正文进行搜索,找出与这个词相关内容,那么就需要对存放标题和正文的字段创建索引,而id字段是每条记录的唯一标识,是mysql中的主键,所以也需要添加到索引中。
那么在xunsearch配置文件中,需要写入创建索引用到的3个字段:id title 和 contont
字段名称写在 [ ] 内,分别对应在mysql中的字段名称
type为这个字段对应的数据类型,这个数据类型不是mysql中的数据类型,是在xunsearch对应的数据类型,有如下几种:
很明显,标题数据对应的类型为title,正文对应的字段类型为body。
ps:配置文件文档:https://www.xunsearch.com/doc/php/guide/ini.guide
新建索引
经典用法示例
# 清空 demo 项目的索引数据
util/Indexer.php --clean demo
# 导入 JSON 数据文件 file.json 到 demo 项目
util/Indexer.php --source=json demo file.json
# 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建
util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql="SELECT * FROM tbl_post" --project=demo
# 查看 demo 项目在服务端的相关信息
util/Indexer.php --info -p demo
# 强制刷新 demo 项目的搜索日志
util/Indexer.php --flush-log --project demo
# 强制停止重建
util/Indexer.php --stop-rebuild demo
ps:索引操作说明文档
https://www.xunsearch.com/doc/php/guide/util.indexer
测试搜索
ps:搜索测试文档:https://www.xunsearch.com/doc/php/guide/util.quest
在web目录下创建xunsearch前端搜索页面骨架
ps:生成搜索代码文档:https://www.xunsearch.com/doc/php/guide/util.skel
本地开启PHP环境
MAC本地,打开/etc/apache2/httpd.conf,将取消本行注释
重启Apache:
sudo apachectl restart
ps:如果你本地已经开启PHP环境请略过这步,如果是win系统请百度对应的开启php环境的方法
浏览器打开本地localhost下生成的xunsearch前端搜索页面
词的相关内容:
内容的相关内容: