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

优采云 发布时间: 2021-11-28 06:22

  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人工客服


线