php 搜索引擎优化(php为coreseek的API文件,增加如下的定时任务配置)

优采云 发布时间: 2022-02-17 20:18

  php 搜索引擎优化(php为coreseek的API文件,增加如下的定时任务配置)

  一、概览

  最近在做业务优化的时候,发现一个业务数据库有很多慢查询。分析原因后发现数据库使用的是MYSQL,单表有150万条记录。. 分析SQL语句,发现数据库被锁主要是因为搜索功能。

  二、实现过程

  1、第一个优化思路是通过提高硬件性能来实现的,但是硬件成本太高了,而且就这个业务的流量来说,没必要这么高的配置,显然需要软件部分进行优化。LINUX下的MYSQL数据库优化到了极致,调整了可以调整的配置,但还是不能满足业务需求。

  2、第二个优化思路是修改表设计,调整程序代码。这种方法可以更好的优化这个问题,但是成本也很高。商业模式已经运行多年,修改的时间成本也很高。

  3、第三个优化思路是直接优化搜索点,所以想到了全文索引。虽然MYSQL数据库也支持全文索引,但是这种应用很少见,给数据库带来很大压力。在PHP应用环境中,我们想到了PHP手册,搜索后找到了CoreSeek的解决方案。当然也可以用其他语言解决问题,比如Solr、Lucence,或者比较新的Es搜索方案,但是在这个方案中,我们采用了最简单的方案,直接部署coreseek,然后做一个小改造上网。

  4、直接配置,请参考coreseek的安装自行解决。

  #

# Minimal Sphinx configuration sample (clean, simple, functional)

#

source main

{

type = mysql

sql_host = 127.0.0.1

sql_user = index

sql_pass =xxxxx

sql_db = xxxxxx

sql_port = 8635 # optional, default is 3306

sql_query_pre = SET NAMES UTF8

sql_query_pre = replace into tb001 select 1,max(nxuh) from tb_xinwen

sql_query_range = select 1,max(nxuh) from tb_xinwen

sql_range_step = 1000

sql_query = \

SELECT nxuh,nxuh as id,clanmmc,cbiaot,cneir,czuozh,ctup,ckeywords, UNIX_TIMESTAMP(dfab) AS dfab \

FROM tb_xinwen where lxians='Y' and nxuh>=$start and nxuh

  6、目前coreseek只支持utf8编码,所以需要在检索到中文索引后进行转码。

  7、服务器的安全配置需要自己实现。

  三、结论

  大多数情况下,搜索结果不需要显示所有内容。例如,在百度中,最大显示约为 74 页。这也符合日常需要。如果把所有的内容都抽出来,那就没有意义了。另外,请仔细阅读 API 文档,里面有更详细的细节。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线