php 搜索引擎优化(PHP是如何进行搜索引擎开发的嘛的!(上))
优采云 发布时间: 2021-11-17 21:04php 搜索引擎优化(PHP是如何进行搜索引擎开发的嘛的!(上))
听到搜索引擎,大家都觉得很难写,根本没有概念。其实PHP也可以用于搜索引擎开发,但是PHP需要结合sphinx和mysql来开发我们想要的搜索引擎。我想知道 PHP 是如何工作的。搜索引擎已开发!让我们来看看!!
首先我们下载Sphinx工具,官网下载地址下载地址:,找到sphinx-2.2.10-release-win64.zip,64位下载这个,解压到我们的PHP运行目录下,方便查看以下网页的结果。
狮身人面像介绍:
Sphinx 是 SQL Phrase Index(查询短语索引)的缩写。Sphinx 是一个基于 SQL 的全文搜索引擎。提供的API接口包括:PHP、Python、Perl、Ruby、java等,还为MySQL SphinxSE设计了一个引擎插件,是一个分布式全文搜索系统。
优势:
高速分度可达10M/s
高性能搜索(在2-4G文本数据上,每次检索平均响应时间小于0.1秒)
可处理海量数据(目前已知可处理100G文本数据,单CPU系统可处理100M文档)
提供优秀的关联算法,基于词组相似度和统计BM2的复合Ranking方法
支持分布式搜索
提供文档片段生成功能
可作为Mysql存储引擎提供搜索服务
支持布尔、词组、词相似等多种检索模式。
缺点:
必须有主键
主键必须是整数
不负责数据存储
不灵活的配置
解压后的sphinx结构如图:
下面是进行我们的相关配置,看到图片中的sphinx-min.conf.in,复制到我们的bin目录下,改名为sphinx.conf一会。
修改内容:
source src1
{
type = mysql
sql_host = localhost #主机地址
sql_user = root#帐号
sql_pass = #密码
sql_db = sphinx #数据库
sql_port = 3306 # 数据库端口 3306
sql_query = SELECT id, name, age FROM users #查询语句
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_query_pre = set names utf8 #数据库编码
}
index test1
{
source = src1
path = D:/myapaphe/www/sphinx/data #这个一定要配置
charset_type = utf-8 #指定编码
ngram_len = 1 #要找中文需指定为1.
ngram_chars = U+3000..U+2FA1F
}
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = D:\myapaphe\www\sphinx\log\searchd.log #进程日志
query_log = D:\myapaphe\www\sphinx\log\query.log #查询日志
read_timeout = 5
max_children = 30
pid_file = D:\myapaphe\www\sphinx\log\searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = D:\myapaphe\www\sphinx\data
}
以上是必须配置的,路径必须符合自己的路径。
接下来生成查询索引:
安装 searchd 服务:
接下来加载配置文件:
启动服务:
OK前面的配置工作,服务启动已经完成,现在开始代码:
在sphinx下的api文件夹下创建test3.php,运行test3.php
<p>