这篇文章主要介绍了<?php启用sphinx全文搜索的实现要领 ,详细讲述了sphinx相关的配置与使用技巧,具有必然的参考借鉴价值,需要的伴侣可以参考下

本文实例讲述了<?php启用sphinx全文搜索的实现要领 。分享给各人供各人参考。具体阐明如下:

在编译安装 sphinx 的时候呈现很多中文乱码,最后抛堕落误卡住了,我去到官方直接下载一个 rpm 包,安装就很爽,具体错误不想研究了,忙开发呢.

安装两个包,一个是 mmseg 这个是生成中文字典的措施,一个是 csft 也就是中国版的sphinx .

rpm -ivh 安装完以后,很顺利~~不到半分钟就装完了.

中文字典库,我直接去 csft 官方下载了,挺好的想得很周到.

unigram.txt uni.lib

unigram.txt 字典文本,可以在里面添加你本身的关键字.

然后使用:mmseg -u unigram.txt 生成字典文件:unigram.txt.uni 然后重命名一下 uni.lib 这个就是sphinx 认识的字典了.

放哪里?放你在 sphinx.conf 里面配置的字典路径里面,等会说到,然后基本就差不多了,在看下sphinx 几个实用的措施:

代码如下:

[root@beihai365 /]# csft-

csft-indexer csft-search csft-searchd

csft-indexer 是生玉成文搜索索引的 措施

csft-search 是测试搜索是否生效用的,也很好用,不如我还没用客户端脚本开发,电脑维修视频教程,就可以用这个来检察全文搜索是否乐成

csft-searchd 这个就是 sphinx 搜索的守护措施了。 启动以后,就可以用脚本 <?php python 等,开查询了。

就那么简单,在看下关键的两部门对象.

sphinx.conf 配置文件:

代码如下:

source tmsgs

{

type = mysql

sql_host = localhost

sql_user = root

sql_pass = 1

sql_db = <?phpwind75sp3

sql_port = 3306 # optional, default is 3306

#sql_sock = /tmp/mysql3307.sock

sql_query_pre = set names gbk

sql_query = select id,name,type,stock from pw_tools

#sql_attr_uint = id

sql_attr_uint = stock

}

index tmsgsindex

{

source = tmsgs

path = /var/mmseg/searchdata/beihai365

docinfo = extern

charset_type = zh_cn.gbk

#min_prefix_len = 0

#min_infix_len = 2

#ngram_len = 2

charset_dictpath = /var/mmseg/data

#min_prefix_len = 0

#min_infix_len = 0

#min_word_len = 2

}

indexer

{

mem_limit = 128m

}

searchd

{

#listen = 3312

log = /var/log/searchd.log

query_log = /var/log/query.log

read_timeout = 5

max_children = 30

pid_file = /var/log/searchd.pid

max_matches = 1000

#seamless_rotate = 1

#preopen_indexes = 0

#unlink_old = 1

}

source tmsgs

{

type = mysql

sql_host = localhost

sql_user = root

sql_pass = 1

sql_db = <?phpwind75sp3

sql_port = 3306 # optional, default is 3306

#sql_sock = /tmp/mysql3307.sock

sql_query_pre = set names gbk

sql_query = select id,name,type,stock from pw_tools

#sql_attr_uint = id

sql_attr_uint = stock

}

index tmsgsindex

{

source = tmsgs

path = /var/mmseg/searchdata/beihai365

docinfo = extern

charset_type = zh_cn.gbk

#min_prefix_len = 0

#min_infix_len = 2

#ngram_len = 2

charset_dictpath = /var/mmseg/data

#min_prefix_len = 0

#min_infix_len = 0

#min_word_len = 2

}

indexer

{

mem_limit = 128m

}

searchd

{

#listen = 3312

log = /var/log/searchd.log

query_log = /var/log/query.log

read_timeout = 5

max_children = 30

pid_file = /var/log/searchd.pid

max_matches = 1000

#seamless_rotate = 1

#preopen_indexes = 0

#unlink_old = 1

}

再看一下,测试客户端代码:

代码如下:

header("content-type:text/html;charset=utf-8");

include 'sphinxapi.<?php ';

$cl = new sphinxclient();

$cl->;setserver('localhost',3312);

$cl->;setmatchmode(sph_match_all);

$cl->;setarrayresult(true);

$res = $cl->;query("名卡","*");

print_r($res);

?>;

header("content-type:text/html;charset=utf-8");

include 'sphinxapi.<?php ';

$cl = new sphinxclient();

$cl->;setserver('localhost',3312);

$cl->;setmatchmode(sph_match_all);

$cl->;setarrayresult(true);

$res = $cl->;query("名卡","*");

print_r($res);

?>;

“名卡”这个关键字是我本身手动在字典里面添加的,看是否能真的搜到,实例代码如下:

代码如下:

array

(

[error] =>;

[warning] =>;

[status] =>; 0

[fields] =>; array

(

[0] =>; name

[1] =>; type

)

[attrs] =>; array

(

[stock] =>; 1

)

[matches] =>; array

(

[0] =>; array

(

[id] =>; 8

[weight] =>; 1

[attrs] =>; array

(

[stock] =>; 100

)

)

)

[total] =>; 1

[total_found] =>; 1

[time] =>; 0.018

[words] =>; array

(

[名卡] =>; array

(

[docs] =>; 1

[hits] =>; 1

)

)

)

array

(

[error] =>;

[warning] =>;

[status] =>; 0

[fields] =>; array

(

[0] =>; name

[1] =>; type

)

[attrs] =>; array

(

[stock] =>; 1

)

[matches] =>; array

(

[0] =>; array

(

[id] =>; 8

[weight] =>; 1

[attrs] =>; array

(

[stock] =>; 100

)

)

)

[total] =>; 1

[total_found] =>; 1

[time] =>; 0.018

[words] =>; array

(

[名卡] =>; array

(

[docs] =>; 1

[hits] =>; 1

)

)

)

完全没问题,搜索出来了,几个关键的操纵:

[root@beihai365 /]# csft-searchd --stop 遏制搜索守护

[root@beihai365 /]# csft-indexer --all 针对所有节点生成索引,你也可以针对某个节点生成索引好比:csft-indexer xx

[root@beihai365 /]# csft-search app 搜索关键字 app,不外看下面信息没有搜到和没有命中任何的文档.

coreseek full text server 3.1

copyright (c) 2006-2008 coreseek.com

using config file './csft.conf'...

1,

pt:1, 1; index 'tmsgsindex': query 'app ': returned 0 matches of 0 total in 0.017 sec

words:

1. 'app': 0 documents, 0 hits

当各人在运行这些命令的时候发明,需要你本身手动的置顶 --config sphinx.conf 配置文件的路径,很不方便,所以我干脆 ln -s 一个在 ./,这样不消每次都去敲入 --config.

但愿本文所述对各人的<?php措施设计有所帮手 。

php全文搜索视频教程,【php启用sphinx全文搜索的实现要领】_PHP技巧_电脑技术学习,计算机学习网站,电脑维修技术教程,培训资料学习网-OAWHY...相关推荐

  1. php 全局搜索方法,php启用sphinx全文搜索的方法

    php启用sphinx全文搜索的方法 sql_pass                                = 1 sql_db                               ...

  2. 【转载】Discuz!NT企业版之Sphinx全文搜索

    Discuz!NT企业版之Sphinx全文搜索(上) 作为Discuz!NT企业版中的一员,在设计企业级搜索架构之初,就考虑了海量数量,准实时索引更新,并发访问,安装布署等诸多方面.目前在生产环境下被 ...

  3. mysql 支持全文搜索_MySQL全文本搜索:启用全文本搜索支持

    一般在创建表时启用全文本搜索. CREATE TABLE 语句接受 FULLTEXT 子句,它给出被索引列的一个逗号分隔的列表. 下面的 CREATE 语句演示了 FULLTEXT 子句的使用: 输入 ...

  4. sphinx 全文搜索引擎

    sphinx简介 参考指南 参考指南 sphinx API中文 sphinx 全文搜索引擎:顾名思义,是做收索用的,因为普通的搜索在数据量小的时候,能应对自如,但是当数据量上千万,或者上亿的时候.纯粹 ...

  5. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

    Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...

  6. sphinx分词搜索

    使用背景 在mysql中优化的时候,对varchar,char,text对这些数据进行查询时,如果我们使用like '%单词',是无法使用到索引,如果网站的数据量比较大,会拖垮网站的速度.比如在根据电 ...

  7. mysql搜索斯芬克斯_如何用sphinx正确搜索数字?

    我需要在mysql中搜索十亿条记录,这是一个很长的过程(现在可以了).斯芬克斯能帮我吗?如何正确配置sphinx的搜索号码?是否应使用整数属性进行搜索(而不是字符串字段)? 我只需要获取时间戳&quo ...

  8. java电商商品搜索_Java生鲜电商平台-搜索模块的设计与架构

    说明:搜索模块针对的是买家用户,在找菜品找的很费劲下的一种查询方面.目前也是快速的检索商品. 对于移动端的APP买家用户而言,要求的速度在3秒内完成.支持模糊查询,由于业务实战表面,整个搜索频率不到1 ...

  9. 怎样搜索计算机文档,怎么样快速搜索电脑文件 Windows系统秒搜电脑文件

    不知大家有没有遇到过这样的情况,当电脑里储存的文件越来越多的时候,就会经常找不到需要用到的文件放在什么地方,遇到急需该文件却又忘了放在什么位置的时候是最气的!而如果我们使用Windows自身的全盘搜索 ...

最新文章

  1. JDK1.6.0下载安装与环境配置
  2. php,http_build_query,乱码
  3. php 远程代码执行漏洞复现 cve-2019-11043
  4. Requests请求库
  5. sentinel里的双检锁
  6. idea 无法打开项目_Premiere出现quot;项目看来已经损坏,无法打开”的解决方法...
  7. vue-cli 3.0安装和使用
  8. MySQL concat()函数
  9. Hyper-v和VMware 兼容问题
  10. 设计模式:代理模式(C++)【代理服务器案例】
  11. 【英语学习】【医学】有机化学 - 烷的命名
  12. python缩进设计_Python 的缩进是不是反人类的设计?
  13. ODI11G 在Linux上的安装配置
  14. 你的第一个java_【JAVA SE基础篇】3.你的第一个JAVA程序
  15. LwIP 协议栈之 udp 协议解析
  16. STM32RBT6+RC522读取CPU卡demo
  17. threejs特效:选中效果
  18. 恋爱测试题测男生软件,男友求生欲测试题大全
  19. 问题 F: 解救小哈
  20. Selenium3自动化学习(三)

热门文章

  1. 【OpenCV-Python-课程学习(贾)】 OpenCV3.3课程学习笔记-开篇和简介
  2. 在JS中 onclick=return false; return false是什么意思
  3. universal bios_技嘉开始为400系主板提供BIOS更新
  4. zabbix6.4 Database history tables upgraded
  5. mp4是什么格式?如何录制mp4格式的视频?一招解决
  6. bullmind在线思维导图软件,bullmind在线流程图软件
  7. oracle创建record,oracle record | 学步园
  8. 静态时序分析 第三章 标准单元库
  9. 经典企业信息管理系统-任亮-专题视频课程
  10. 怎么办理软件产品登记测试报告,软件产品登记有什么作用?