PHP搜索优化 sphinx 实战

PHP搜索优化 sphinx 实战

环境:win7 64 wamp

解压sphinx安装包后,简历如下结构。注意,conf目录是我的配置文件目录

在conf目录下,简历newdefend.conf文件,配置内容如下

# 配置数据源
source domain_src
{
    type            = mysql
    sql_host        = 192.168.185.210
    sql_user        = root
    sql_pass        =
    sql_db            = mydb
    sql_port        = 3306    
    
    sql_ranged_throttle    = 0
    sql_query_pre        = SET NAMES utf8
    # sql_query_pre       = SET SESSION query_cache_type=OFF
    sql_query_pre         = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM domain
   # 注意这个地方,至少要有各自字段没有定义成sql_attr_***,好像是需要有一个字段是全文索引什么的。反正多查询一个字段就对了。或者定义一个sql_field_string也可以 sql_query
= SELECT id,uid,type,package_level,ct,domain FROM domain \ WHERE id<=( SELECT max_id FROM sph_counter WHERE counter_id = 1 ) sql_attr_uint = uid sql_attr_uint = type sql_attr_uint = package_level # sql_field_string = ct sql_attr_timestamp = ct } # 配置增量数据源 source delta_domain_src:domain_src{ sql_ranged_throttle = 100 sql_query_pre = SET NAMES utf8 # sql_query_pre = SET SESSION query_cache_type=OFF sql_query = SELECT id,uid,type,package_level,ct,domain FROM domain \ WHERE id>( SELECT max_id FROM sph_counter WHERE counter_id = 1 ) } # 索引 index domain_suggest { source = domain_src path = D:/sphinx/data/domain_suggest charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F docinfo = extern dict = keywords mlock = 0 morphology = none min_word_len = 1 ngram_len = 1 ngram_chars = U+3000..U+2FA1F html_strip = 0 } # 增量索引 index delta_domain_suggest:domain_suggest { source = delta_domain_src path = D:/sphinx/data/delta_domain_suggest } indexer { mem_limit = 128M } # 配置Sphinx服务器的信息 searchd { listen = 9312 listen = 9306:mysql41 log = D:/sphinx/log/searchd.log query_log = D:/sphinx/log/query.log read_timeout = 5 client_timeout = 300 max_children = 30 persistent_connections_limit = 30 pid_file = D:/sphinx/log/searchd.pid preopen_indexes = 1 unlink_old = 1 mva_updates_pool = 1M max_packet_size = 8M max_filters = 256 max_filter_values = 4096 max_batch_queries = 32 workers = threads # windows下启动searchd服务一定要注释掉这个   # seamless_rotate = 1 # 开启sphinx服务时,会生成几个log文件,这里配置文件生成目录。默认会生成在searchd.exe同级目录下 binlog_path = D:/sphinx/log/ }

定义一个启动sphinx的脚本“sphinx重启.bat”。脚本内容如下,双击启动

@echo off 

::停止sphinx服务
d:/sphinx/bin/searchd --stop

::建立配置文件中所有索引(也可以建立某个索引)
d:/sphinx/bin/indexer -c d:/sphinx/conf/newdefend.conf --all

::启动sphinx服务
d:/sphinx/bin/searchd -c d:/sphinx/conf/newdefend.conf

::窗口不要关闭
pause

启动成功界面

测试代码

$keyword = '';
$sphinx = new SphinxClient;
$sphinx->setServer("localhost", 9312);
$sphinx->setMatchMode(SPH_MATCH_ALL);   //匹配模式 ANY为关键词自动拆词,ALL为不拆词匹配(完全匹配)
$sphinx->SetArrayResult ( true );    //返回的结果集为数组
$result = $sphinx->query($keyword,"domain_suggest delta_domain_suggest");    //星号为所有索引源
$count=$result['total'];        //查到的结果条数
$time=$result['time'];            //耗时
$arr=$result['matches'];        //结果集
$id='';
foreach($arr as $i => $val){
    $id.=$arr[$i]['id'].',';
}
$id=substr($id,0,-1);            //结果集的id字符串

echo $id;

运行结果

 

posted @ 2018-04-24 15:12 懒牛拉车 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者介绍 作者简介 Jaimie Sirovich是一位搜索引擎营销顾问,致力于与客户一起构建强大的在线展示平 台。虽然Jaimie身为一个计算机程序员,但是他更乐于参与营销方面的工作。他毕业于 Stevens Institute ofTechnology,获得计算机科学学士学位。2005年之前,他任职于RustyBrick. Inc.公司,并在Barry Schwartz的带领下展开工作,在电子商务项目中担任高级程序员。 Jaimie目前担任几个公司的顾问,并且管理热门的搜索引擎营销博客SEOEgghead.com。 Cristian Darie是一位软件工程师,对各种现代技术具备丰厚的经验,撰写多本技术图 书,涵盖AJAX、ASENET、PHP、SQL及相关领域。Cristian目前居住在Bucharest,Romania, 正在攻读分布式应用体系结构博士学位。他曾参与多个商业和研究项目,闲暇时也喜爱参 与社交活动并获得乐趣。如果希望联系他,可以访问他的个人站点 http://www,cristiandarie.ro。 目录 第1章 你是编程人员,也是搜索引擎营销人员 1.1 你是谁 1.2 你需要学习什么 1.2.1 SEO和站点体系结构 1.2.2 SEO不能成为马后炮 1.2.3 通信构建抉择 1.2.4 构建细节将会决定成败 1.3 准备软件环境 1.3.1 安装XAMPP 1.3.2 准备工作文件夹 1.3.3 准备数据库 1.4 小结 第2章 SEO基础知识 2.1 SEO概述 2.1.1 链接价值 2.1.2 Google PageRank 2.1.3 可用性和可达性 2.2 搜索引擎排名因素 2.2.1 页上因素 2.2.2 可见的页上因素 2.2.3 不可见的页上因素 2.2.4 基于时间的因素 2.2.5 外部因素 2.3 可能的搜索引擎惩罚 2.3.1 Google沙盒效应 2.3.2 过期域名惩罚 2.3.3 重复内容惩罚 2.3.4 Google补充索引 2.4 资源和工具 2.4.1 Web分析器 2.4.2 市场研究 2.4.3 研究关键词 2.4.4 浏览器插件 2.4.5 论坛 2.4.6 搜索引擎博客和资源 2.5 小结 第3章 友好的搜索引擎URL地址 3.1 为什么URL地址重要 3.2 动态URL地址和静态URL地址 3.2.1 静态URL地址 3.2.2 动态URL地址 3.2.3 URL地址与网站单击率 3.2.4 URL地址与重复内容 3.3 真实世界的URL地址 3.3.1 实例#1:动态URL地址 3.3.2 实例#2:数字化重写URL地址 3.3.3 实例#3:多关键词重写URL地址 3.3.4 保持URL的一致性 3.4 URL重写 3.4.1 安装 mod_rewrite 3.4.2 测试mod_rewrite 3.4.3 介绍正则表达式 3.4.4 URL重写与PHP 3.4.5 将带两个参数的URL进行重写数字化 3.4.6 重写多关键词URL地址 3.4.7 建立链接工厂 3.4.8 分页与URL重写 3.4.9 重写图像和流媒体 3.5 重写没有解决的问题 3.6 最后的警告 3.7 小结 第4章 内容重定向和HTTP状态代码 4.1 HTTP状态代码 4.2 使用301和302重定向 4.2.1 301代码 4.2.2 302代码 4.3 使用404清除已删除页面 4.4 使用500避免索引错误的页面 4.5 用PHP和mod_rewrite重定向 4.5.1 使用重定向来改变文件名 4.5.2 URL修正 4.5.3 正确处理多个域名 4.5.4 使用重定向来改变域名 4.5.5 URL地址标准化:www.example.com对比example.com 4.5.6 URL地址标准化:index.php对比 4.6 其他类型的重定向 4.7 小结 第5章 重复内容 5.1 重复内容的起因和影响 5.1.1 网站结构导致的重复内容 5.1.2 内容盗窃导致的重复内容 5.2 排除重复内容 5.2.1 使用Robots meta标签 5.2.2 robots.txt模式排除 5.3 常见重复页面的解决方案 5.3.1 打印友好的页面 5.3.2 导航链接和眉毛导航 5.3.3 相似页面 5.3.4 具有重复Meta标签或Title值的页面 5.3.5 URL规范化 5.3.6 基于URL的会话ID 5.3.7 其他导航链接参数 5.3.8 会员页面 5.3.9 重定向参数化的会员URL地址 5.4 小结 第6章 搜索引擎友好的HTML和JavaScript 6.1 总体结构 6.2 搜索引擎友好的JavaScript 6.2.1 JavaScript链接 6.2.2 DHTML菜单 6.2.3 弹出窗口 6.2.4 DHTML弹出窗口 6.2.5 可检索的图像和图形文本 6.3 搜索引擎友好的HTML 6.3.1 HTML结构化单元 6.3.2 内容突出和表格 6.3.3 帧 6.3.4 使用表单 6.4 使用自定义标记语言来生成搜索引擎友好的HTML 6.5 Flash和AJAX 6.6 小结 第7章 Web Feed和社会书签 7.1 Web Feed 7.2 创建RSS Feed 7.3 联合RSS和Atom Feed 7.4 联合内容的其他资源 7.5 社会书签 7.6 小结 第8章 黑帽SEO 8.1 帽子是什么意思 8.2 绕过规则 8.3 黑帽技术分析 8.3.1 攻击避免 8.3.2 HTML插入攻击 8.3.3 使用Nofollow避免回帖攻击 8.3.4 清理用户输入 8.3.5 要求手工输入 8.3.6 301重定向攻击 8.3.7 内容盗窃 8.3.8 关于购买链接 8.3.9 Digital Point Co-op和Link Vault 8.4 小结 第9章 站点地图 9.1 传统站点地图 9.2 搜索引擎站点地图 9.2.1 使用Google站点地图 9.2.2 使用Yahoo!站点地图 9.3 程序化生成站点地图 9.4 提示Google已经更新 9.5 Sitemaps.org标准协议 9.6 小结 第10章 链接诱饵 10.1 钩子链接 10.1.1 信息钩子 10.1.2 新闻故事钩子 10.1.3 幽默笑话钩子 10.1.4 歪门邪道钩子 10.2 链接诱饵的传统示例 10.3 交互式链接诱饵 10.4 案例学习:幸运甜饼 10.5 小结 第11章 伪装、地域定向和IP分发 11.1 伪装、地域定向和IP分发 11.1.1 关于地域定向的补充 11.1.2 介绍JavaScript重定向伪装 11.1.3 关于伪装的争论 11.1.4 伪装的危险 11.1.5 使用Meta Noarchive标签 11.2 实现伪装 11.3 伪装案例学习 11.3.1 将图像表现为文本 11.3.2 重定向排除内容 11.3.3 将基于订阅的内容只提供给蜘蛛 11.3.4 对蜘蛛禁用基于URL的会话处理 11.3.5 其他伪装实现 11.4 实现地域定向 11.5 小结 第12章 外语SEO 12.1 外语优化提示 12.1.1 指示语言与区域 12.1.2 服务地区与域名 12.1.3 尽可能包含其他国家地区的地址 12.1.4 处理重读的字母(重音符) 12.2 外语垃圾网站 12.3 小结 第13章 处理技术问题 13.1 不可靠的Web主机或DNS 13.2 改变主机提供商 13.3 交叉链接 13.4 针对SEO的分离测试 13.5 检测断链 13.6 小结 第14章 案例学习:构建电子商务商店

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值