【PHP操作sphinx】
【index.php】
【find.php】
<?php header("Content-type:text/html;charset=utf-8"); $keyword = $_GET['word']; //实例化Sphinx对象 $sphinx=new SphinxClient(); //连接sphinx服务器 $sphinx->SetServer("localhost",9312); //拆词 //SPH_MATCH_ALL 和 SPH_MATCH_ANY 的区别: //搜索“LAMP兄弟连”,ALL的结果:完整包含“LAMP兄弟连”才能被搜出来, //单纯包含“LAMP”或单纯包含“兄弟连”的搜索不出来,没有拆词的功能。 //ANY则可以搜索出来拆开后的词的结果。此处使用ANY $sphinx->SetMatchMode(SPH_MATCH_ANY); //通过query方法搜索,“*”表示在所有的索引中搜索,相当于命令行里面的“./indexer --all” $result=$sphinx->query("$keyword","*"); //打印搜索的结果 //echo "<pre>"; //print_r($result); //echo "</pre>"; //上面打印的结果中,数组的 [matches]循环便利,下标就是搜索到的文档的主键Id //使用PHP中的 array_keys()函数即可拿到下标,即:要查找的文档的主键 //print_r(array_keys($result['matches'])); //结果如下:Array([0]=>1) //使用implode或者 join用逗号把查询出来的主键连接起来: $ids = join(',',array_keys($result['matches'])); //echo $ids; //6,7 /*连接数据库的操作*/ $p1 = mysql_connect("localhost","root","123456"); mysql_select_db("test"); mysql_query("set names utf8"); $sql="select * from post where id in ($ids)"; $rst=mysql_query($sql); $opts=array( "before_match"=>"<font color='red'>", "after_match"=>"</font>", ); while($row=mysql_fetch_assoc($rst)){ //print_r($row); //下面是高亮显示所需,具体可以查手册 $final=$sphinx->buildExcerpts($row,"main",$keyword,$opts); echo "<pre>"; print_r($final); echo "</pre>"; } ?>
【当前数据内容】
【PHP操作sphinx】的更多相关文章
- sphinx 全文搜索引擎安装与配置
sphinx 全文搜索引擎 sphinx的安装与配置 ------------------------------------------------------------------------- ...
- sphinx随笔记了一下
sphinx笔记 一:下载中文版coreseek包1:解压后,将etc下的mysql.conf文件复制一份放到上级目录下,改名为sphinx.conf2:配置文件: 2.1:source配置数据源so ...
- sphinx笔记
sphinx笔记 下载中文版coreseek包 1:解压后,将etc下的mysql.conf文件复制一份放到上级目录下,改名为sphinx.conf 2:配置文件: 2.1:source配置数据源 s ...
- sphinx 安装使用
一.linux(centos)下安装源码包 1.下载 wget http://sphinxsearch.com/files/sphinx-2.3.1-beta.tar.gz 2.安装 切换目录到 ...
- 学习sphinx
在我们php开发中如何使用sphinx技术? 答:对应MySQL数据库中的字段,就是将字段中的中文信息拆分成多个词语,然后对这些词语建立索引.以后查询的时候,先去查询这些索引文件,然后返回这些满足条件 ...
- sphinx 全文搜索引擎
sphinx的安装与配置 --------------------------------------------------------------------------------------- ...
- 使用sphinx
SQL 结构化查询语言(是一种标准,所有的关系型数据库Mysql,sqlserver,oracle) sphinx的使用两种方式: 第一种: 使用sphinx的API来操作sphinx (常 ...
- Sphinx全文索引引擎
一.什么是sphinx 原理:sphinx将数据库中的表建立索引,php操作sphinx时,将要查询的关键字进行匹配,返回一个id,php通过id到数据库中查询数据. 二.下载 链接:https:// ...
- 分词搜索 sphinx+php+mysql
sphinx3.1.1的安装与使用 下载sphinx3.1.1 wget http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64. ...
随机推荐
- iOS UITableView点击按钮滚到顶部
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...
- 使用mysql 的docker
sudo docker run --name phpmyAdmin3 --link some-mysql:mysql -d phpmyadmin/phpmyadmin:latest -p 8080:8 ...
- 使用dbms_system追踪其它session
dbms_system是内部包,建议在官方指导下使用该包. SQL> desc dbms_system PROCEDURE ADD_PARAMETER_VALUE Argument Name T ...
- 错误是无法将“XXX”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”问题的解决办法
发生原因: 出现这个问题的原因是两次编译生成的程序集的版本一样,导致VS的窗体设计器没有获取到最新的运行时对象,而出现的错误. 解决办法: 修改项目的配置信息,使其每次编译的时候都生成不同的版本. 在 ...
- 【转】轻量级分布式 RPC 框架
第一步:编写服务接口 第二步:编写服务接口的实现类 第三步:配置服务端 第四步:启动服务器并发布服务 第五步:实现服务注册 第六步:实现 RPC 服务器 第七步:配置客户端 第八步:实现服务发现 第九 ...
- 从零开始攻略PHP(4)——数组的使用
1.数组的概念 数组就是一个用来存储一系列变量值的命名区域. 每个数组元素有一个相关的索引(也成为关键字),它可以用来访问元素. PHP允许间隔性地使用数字或字符串作为数组的索引. 2.数字索引数组 ...
- JSTL 核心标签库
SP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供了 ...
- sublime text 快速补全
sublime text 快速补全 关于补全,其实有很多,记录一些常用的在这里,忘记了可以查找 nav>ul>li <nav> <ul> ...
- C++Builder 笔记
1.界面窗口如何不显示标题栏? 在Form属性栏里面把BorderStyle的值设为None 2.wchar_t wchar_t是C/C++的字符类型,是一种扩展的存储方式,wchar_t类型主要用在 ...
- iOS 检查版本号的代码
- (void)checkNewVersion{ if ([@"appStore" isEqualToString:CHANNEL]) { AFHTTPRequestOperati ...