window下的sphinx(coreseek)安装使用
来源:互联网 发布:新网互联域名管理 编辑:程序博客网 时间:2024/05/17 06:16
sphinx安装,配置,使用,分页
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
- Sphinx 的使用
use SphinxClient;
/*引入sphinx类*/Yii::$classMap['SphinxClient']=" @vendor/yiisoft/yii2/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, '*');//搜索全部$ids=array();//获取匹配的数据if($res['total']>0){foreach($res['matches'] as $key=>$v){$ids[]=$v['id'];}}$data=$model::find()->where(['id'=>$ids]); 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:它是一个索引数组,你可以定义其中的一些单元,
Yii::$classMap['SphinxClient'] ="@vendor/yiisoft/yii2/sphinx/sphinxapi.php";$cl=new SphinxClient;$cl -> SetServer('127.0.0.1',9312);//创建索引$cl -> SetConnectTimeout(3);//设置时间$cl->SetArrayResult(true);//将对象设置为数组$cl -> SetMatchMode(SPH_MATCH_ANY);//搜索//$cl -> SetSortMode(SPH_SORT_EXTENDED, '@id desc'); //排序$res = $cl -> Query($name,"*");//print_r($res);die;$ids=array();//获取匹配的数据if($res['total']>0){foreach($res['matches'] as $key=>$v){$ids[]=$v['id'];}}$data=$model::find()->where(['id'=>$ids]);//分页$pages = new pagination(['totalCount'=>$data->count(),'pageSize'=>3]);$datas=$data->limit($pages->limit)->offset($pages->offset)->asArray()->all();//print_r($result);die;
- window下的sphinx(coreseek)安装使用
- sphinx的Coreseek安装
- sphinx的Coreseek安装
- Sphinx以及coreseek的安装及使用
- Sphinx/Coreseek简介&安装使用
- coreseek&sphinx在linux下安装,配置,使用
- coreseek for sphinx的使用
- windows下全文检索引擎sphinx/coreseek的安装配置
- sphinx与中文分词coreseek(window)
- centos7.2下安装sphinx (coreseek-3.2.14版本)
- centos 下 sphinx(coreseek)安装及常见问题
- sphinx中文分词coreseek在linux下的安装、配置以及使用方法(入门菜鸟级)
- coreseek/sphinx CentOS6.4下安装
- centos下,搜索引擎sphinx/coreseek安装教程
- centso5下使用coreseek(sphinx)建立搜索引擎
- xampp + coreseek(中文索引的sphinx) 安装
- sphinx(coreseek)在linux上的安装
- coreseek(sphinx)linux安装以及配置。。
- easyui combogrid下拉表格的分页/按键/动态搜索
- sphinx 多条件查询
- Hibernate能否越过数据库设置?
- Python使用Ckan API创建并上传resource
- 正确理解ThreadLocal
- window下的sphinx(coreseek)安装使用
- loadrunner 函数web.custom_request使用
- Fresco加载app内的图片,包括gif动图
- C语言 fread()与fwrite()函数说明与示例
- 句柄是什么?
- Windows平台上Android NDK初试用
- iOS开发-Realm数据库
- 我做的去除乱码FM
- mongodb 常用命令