sphinx安装,配置,使用,分页

  1. Sphinx简介

SQL   结构化查询语言(是一种标准,所有的关系型数据库Mysql,sqlserver,oracle)

sphinx的使用两种方式:

第一种:  使用sphinx的API来操作sphinx   (常用)

sphinx可以使用API类,也可以将api编译到PHP中做为扩展

第二种:  使用mysql的sphinx的存储引擎

sphinx  这是英文的全文检索引擎

coreseek  这是支持中文词库的全文检索引擎

区别:

英文的文章 怎么能区分哪个词    以空格来区分词的

中文的文章 我爱北京天安门      中文词库

使用sphinx的步骤:

2、sphinx配置(配置文件 csft_mysql.conf)

配置文件格式

1、数据源定义 (指向你数据的来源 ,通常是mysql)

2、索引 (索引的一些配置信息)

3、indexer  (内用的内存---基本不需要设置)

4、searchd  (服务器的一些配置---)

注意:

1、一个配置文件可以配置多个数据源和索引 ((1,2),(1,2),nnnn)

2、sql_query  主查询(把数据库表中的哪些字段查询出来--根据你页面的搜索条件)

select 第一个字段(一定是主键)

3. sphinx安装

① cd E:/usr/local/coreseek-3.2.14-win32

② indexer.exe -c 配置文件 --all(参数--all 表示创建全部索引)

.\bin\indexer.exe -c .\etc\csft_mysql.conf --all

③ 启动searchd 服务  searchd.exe -c 配置文件

.\bin\searchd.exe -c .\etc\csft_mysql.conf  如果启动服务出现1067错误后 查看配置文件 和配置文件的文字编码

④ php 操作sphinx

  1. Sphinx 的使用

use SphinxClient;

/*引入sphinx类*/

Yii::$classMap['SphinxClient']="@vendor/sphinx/sphinxapi.php";

//简单使用sphinx

$cl = new SphinxClient ();

$cl->SetServer ( '127.0.0.1', 9312);

$cl->SetMatchMode ( SPH_MATCH_ALL); //匹配格式  任意匹配

SPH_MATCH_ALL匹配所有查询词(默认模式)
SPH_MATCH_ANY匹配查询词中的任意一个
SPH_MATCH_PHRASE将整个查询看作一个词组,要求按顺序完整匹配
SPH_MATCH_BOOLEAN将查询看作一个布尔表达式
SPH_MATCH_EXTENDED将查询看作一个Sphinx内部查询语言的表达式
SPH_MATCH_FULLSCAN使用完全扫描,忽略查询词汇
SPH_MATCH_EXTENDED2类似 SPH_MATCH_EXTENDED ,并支持评分和权重.

$cl->SetArrayResult ( true );  //作为数组返回

$cl->SetMaxQueryTime(10); //设置最大搜索时长

//$cl->SetFilter('cat_id', array(1));//过滤条件

$cl->setSortMode(SPH_SORT_EXTENDED,'@id desc'); //排序

//$res=$cl->Query ( $req, "*" ); //执行搜索

$res=$cl->Query($req, '*');//搜索全部

  1. Sphinx 标红

$opt=array("before_match"=>"<font style='font-weight:bold;color:#f00'>","after_match"=>"</font>");

//这里为sphinx高亮显示

foreach($data_arr as $k=>$v){

$rows = $cl->buildExcerpts($v,"mysql",$req,$opt);

$model_arr[$k]['id']=$rows[0];

$model_arr[$k]['name']=$rows[1];

$model_arr[$k]['cat_id']=$rows[2];

}

【注意】:

语法:public array SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opt ] )

可以有四个参数,前三个为必须

array $docs    :     即从数据库取出来的结果数组(fetch_assoc),本实例为 $row ;

string $Index   :    即我们在csft_mysql.conf 配置的索引名,本实例为 news

string $words  :    搜索的关键词,本实例为 $keyword

可选参数 array $opts:它是一个索引数组,你可以定义其中的一些单元,

php--sphinx的使用的更多相关文章

  1. 利用sphinx为python项目生成API文档

    sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apido ...

  2. 安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误

    表现: /home/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/home/sphinx-1.1.0/sp ...

  3. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  4. coreseek+sphinx+mysql+thinkphp整合

    1.安装coreseek 1.1首先升级或安装系统依赖库 yum install make gcc g++ automake libtool mysql-client libmysqlclient15 ...

  5. 全文检索解决方案(lucene工具类以及sphinx相关资料)

    介绍两种全文检索的技术. 1.  lucene+ 中文分词(IK) 关于lucene的原理,在这里可以得到很好的学习. http://www.blogjava.net/zhyiwww/archive/ ...

  6. 如何将Sphinx生成的html文档集成进入Django

    参考 http://stackoverflow.com/questions/10594618/django-and-sphinx-how-to-view-the-html-sphinx-generat ...

  7. Linux下搭建coreseek(sphinx+mmseg3)全文检索

    测试平台:Center OS 1.设置环境,升级/安装系统基础依赖包:m4.autoconf.automake.libtool #设置路径和中文环境: $ export PATH=/usr/local ...

  8. debian下使用Sphinx异常“Could not import extension sphinx.builders.linkcheck (exception: cannot import name SSLError)”的解决

    最近使用到Sphinx编译文档,出现如下异常: Extension error:Could not import extension sphinx.builders.linkcheck (except ...

  9. [搜索引擎]Sphinx的介绍和原理探索

    What/Sphinx是什么 定义 Sphinx是一个全文检索引擎. 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI.SphinxQL或者SphinxSE搜索接口 易于 ...

  10. Sphinx安装配置应用

    Sphinx 是由俄罗斯人Andrew Aksyonoff开发的一个全文搜索引擎.意图为其他应用提供高速.地空间占用.高结果相关度的全文搜索功能.Sphinx可以非常容易的与SQL数据库和脚本语言集成 ...

随机推荐

  1. jQuery对象和DOM对象之间的相互转换

    DOM对象:DOM(Document Object Model,文档对象模型),每一份DOM都可以表示成为一棵树,DOM对象可以使用javascript中的方法. jQuery对象:jQuery对象就 ...

  2. 10分钟API Hook MessageBox

    10分钟API Hook MessageBox 分类: C++2012-04-12 22:52 877人阅读 评论(4) 收藏 举报 hookwinapidllthreadpython编程 转载注明出 ...

  3. LightOJ1025 The Specials Menu(区间DP)

    给一个字符串,问有几种删字符的方式使删后的非空字符串是个回文串. 当然区间DP:dp[i][j]表示子串stri...strj的方案数 感觉不好转移,可能重复算了.我手算了"AAA" ...

  4. CodeForces Round 200 Div2

    这次比赛出的题真是前所未有的水!只用了一小时零十分钟就过了前4道题,不过E题还是没有在比赛时做出来,今天上午我又把E题做了一遍,发现其实也很水.昨天晚上人品爆发,居然排到Rank 55,运气好的话没准 ...

  5. 【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)

    http://wikioi.com/problem/1904/ 这题没看数据的话是一个大坑(我已报告官方修复了),答案只要求数量,不用打印路径...orz 最小路径覆盖=n-最大匹配,这个我在说二分图 ...

  6. 基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

  7. Centos下设置静态IP

    使用VirtualBox装了很多虚拟机,默认采用的DHCP的方式,但是随着虚拟机越来越多以后,这种方式很不方便,所以需要将机器的IP都设置为静态IP 需要添加的几项内容的解释:IPADDR    IP ...

  8. 【C语言】08-数组

    为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址". 地址 1.计算机中的内存是以字节为单位的存储空间.内存的每一个字节都有一个唯一的编号,这个编号就称为地址.凡存放 ...

  9. yoman安装和使用

    http://yeoman.io/     安装到全局 sudo npm install -g yo 判断是否安装成 yo --version 常用命令 yo doctore yo --help 安装 ...

  10. 使用XHTML+CSS构架的好处到底有哪些?

    使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰. 1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: div{ma ...