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 = sql_ranged_throttle =
sql_query_pre = SET NAMES utf8
# sql_query_pre = SET SESSION query_cache_type=OFF
sql_query_pre = REPLACE INTO sph_counter SELECT , 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 = )
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 =
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 = )
} # 索引
index domain_suggest
{
source = domain_src
path = D:/sphinx/data/domain_suggest
charset_table = .., A..Z->a..z, _, a..z, U+..U+42F->U+..U+44F, U+..U+44F
docinfo = extern
dict = keywords
mlock =
morphology = none
min_word_len =
ngram_len =
ngram_chars = U+..U+2FA1F
html_strip =
} # 增量索引
index delta_domain_suggest:domain_suggest {
source = delta_domain_src
path = D:/sphinx/data/delta_domain_suggest
} indexer
{
mem_limit = 128M
} # 配置Sphinx服务器的信息
searchd
{
listen =
listen = :mysql41
log = D:/sphinx/log/searchd.log
query_log = D:/sphinx/log/query.log
read_timeout =
client_timeout =
max_children =
persistent_connections_limit =
pid_file = D:/sphinx/log/searchd.pid
preopen_indexes =
unlink_old =
mva_updates_pool = 1M
max_packet_size = 8M
max_filters =
max_filter_values =
max_batch_queries =
workers = threads # windows下启动searchd服务一定要注释掉这个
# seamless_rotate = # 开启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;
运行结果
PHP搜索优化 sphinx 实战的更多相关文章
- PHP搜索优化 sphinx 搭建测试
安装.环境:win7 64位 1.下载sphinx文件包 下载地址:http://sphinxsearch.com/downloads/archive/ 2.解压到D:/sphinx.新建文件夹dat ...
- seo搜索优化教程14-seo搜索优化实战
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第14课 根据前面学习的seo搜索优化内容,星辉科技进行总结性的分析,形成一份标准的se ...
- 一次 ElasticSearch 搜索优化
一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共 ...
- HDFS配置参数及优化之实战经验(Linux hdfs)
HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...
- 【随笔】Android应用市场搜索优化(ASO)
参考了几篇网上的关于Android应用市场搜索优化(ASO)的分析,总结几点如下: 优化关键字:举例目前美团酒店在各Android市场上的关键字有“美团酒店.钟点房.团购.7天”等等,而酒店类竞对在“ ...
- 针对TianvCms的搜索优化文章源码(无版权, 随便用)
介绍: 搜索优化虽然不是什么高深的技术, 真正实施起来却很繁琐, 后台集成搜索优化的文章可以便于便于管理, 也让新手更明白优化的步奏以及优化的日常. 特点: 根据自己的经验和查阅各种资料整理而成, 相 ...
- seo搜索优化教程09 - seo搜索优化外链优化
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第九课 网络营销推广中有句行话,叫做"内容为王,外链为王",可见外链对于 ...
- seo搜索优化教程10-黑帽SEO
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第十课 学习黑帽SEO并不是教大家如何作弊,而是想让大家避免使用黑帽SEO手法,从而导致被搜 ...
- seo搜索优化教程11-seo搜索优化关键词策略
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第11课 关键词在seo搜索优化中有着重要的地位,本节主要讲解seo搜索优化中关键词优化的相 ...
随机推荐
- webservice、httpClient、dubbo的区别
在开发中,对于同一个war包中的对象方法我们可以直接调用,但是很多情况下需要在不同项目或者不同服务器进行相互调用 webservice webservice技术可以实现不同服务器项目直接的调用和交换数 ...
- UMP系统功能 资源隔离
- Linux-c线程创建
{ pthread_attr_t attr;//线程属性 , err_sav; if (!pThreadId) { errno = EINVAL; ; } memset(&attr, , si ...
- Python-包与常用模块(2)
目录 包 导入包内包 相对导入和绝对导入 注意事项 time模块 datetime模块 random模块 argparse 模块 configparser模块 hashlib模块和hmac模块 typ ...
- 使用scrapy框架来进行抓取的原因
在python爬虫中:使用requests + selenium就可以解决将近90%的爬虫需求,那么scrapy就是解决剩下10%的吗? 这个显然不是这样的,scrapy框架是为了让我们的爬虫更强大. ...
- Apache ActiveMQ教程
一.特性及优势 1.实现JMS1.1规范,支持J2EE1.4以上 2.可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM) 3.支持多种语言客户端(j ...
- 从0开始学习ssh之岗位管理
岗位应该有如下属性,id.名称.说明.新建role.java.添加id,name,description并增加三个的get set方法. 之后建立Role.hbm.xml 并加入到applicatio ...
- Tornado Demo1---webspider分析
Demo源码地址 https://github.com/CHUNL09/tornado/tree/master/demos/webspider 这个Demo的作用是用来获取特定URL的网页中的链接(链 ...
- hue mysql连接不上数据库排查
由于CDH所有的组件都会进行agent检测,所以先到/var/log/cloudera-scm-agent(mysql所在节点进行日志排查),可以发现每次连接会产生一个log路径作为记录hue连接my ...
- git的三个区域比较
工作区: 暂存区: 提交区: 工作区与暂存区比较:git diff 工作区与提交区比较:git diff 提交hash码或者HEAD 暂存区与提交区比较:git diff --cached 两个不同提 ...