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

sphinx的使用两种方式:

第一种:  使用sphinx的API来操作sphinx   (常用)   
     sphinx可以使用API类,也可以将api编译到PHP中做为扩展
第二种:  使用mysql的sphinx的存储引擎

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

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

区别:
    英文的文章 怎么能区分哪个词    以空格来区分词的
    中文的文章 我爱北京天安门      中文词库

使用sphinx的步骤:

1、安装
cd E:/usr/local/coreseek-3.2.14-win32
2、配置(配置文件 csft_mysql.conf)
   配置文件格式
    1、数据源定义 (指向你数据的来源 ,通常是mysql)
        2、索引 (索引的一些配置信息)
        3、indexer  (内用的内存---基本不需要设置)
        4、searchd  (服务器的一些配置---)
   注意:
    1、一个配置文件可以配置多个数据源和索引 ((1,2),(1,2),nnnn)
    2、sql_query  主查询(把数据库表中的哪些字段查询出来--根据你页面的搜索条件)

select 第一个字段(一定是主键)
cd month9/date0410/vendor/yiisoft/yii2/sphinx

3、indexer.exe -c 配置文件 --all(参数--all 表示创建全部索引)
.\bin\indexer.exe -c .\etc\csft_mysql.conf --all
4、启动searchd 服务  searchd.exe -c 配置文件
.\bin\searchd.exe -c .\etc\csft_mysql.conf
5、php 操作sphinx

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

//多表索引
http://0x0d.im/archives/using-coreseek-with-PHP-with-multiple-indexes.html

//高亮显示
        foreach($countries as $k=>$v){
            $countries[$k]['name']=$cl->BuildExcerpts([$v['name']],'mysql','zhangsan',array('before_match'=>"<font style='font-weight:bold;color:#f00;'>",'after_match'=>"</font>"))[0];
        }

//name//键值
//mysql//索引名称
//zhangsan//搜索的高亮名称

http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html#matching-modes

$name=Yii::$app->request->get('name');
        $starttime=Yii::$app->request->get('starttime');
        $endtime=Yii::$app->request->get('endtime');
        //实例化sphnix
        $cl=new SphinxClient();
        $cl->SetServer('127.0.0.1',9312);
        //设置时间
        $cl->SetConnectTimeOut(3);
        $cl->SetArrayResult(true);
        if(empty($name))
        {
            $cl->SetMatchMode(SPH_MATCH_FULLSCAN);

}else{
            $cl->SetMatchMode(SPH_MATCH_ANY);

}
        if($starttime && $endtime)
        {
            $cl->SetFilterRange('time',$starttime,$endtime);
        }
        //执行搜索
        $arr=$cl->Query($name,'*');
        // print_r($arr);die;
        if($arr['matches']){
            foreach($arr['matches'] as $k=>$v) {
                $data[]=$v['id'];
            }

}
        $query = Users::find()->where(['id'=>$data]);
       
        $countQuery = clone $query;
        $pages = new Pagination([
            'totalCount' => $countQuery->count(),
            'defaultPageSize' => 4,]);
        $models = $query->offset($pages->offset)
            ->limit($pages->limit)
            ->all();

return $this->render('sou', [
             'models' => $models,
             'pages' => $pages,
             'name'=>$name,
             'starttime'=>$starttime,
             'endtime'=>$endtime
         ]);

使用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. 基于dubbo2.5.5+zookeeper3.4.9的服务搭建

    参考资料:https://segmentfault.com/a/1190000009568509https://segmentfault.com/a/1190000004654903 0. 环境 Ja ...

  2. 【WIP】rails redis的使用

    创建: 2018/03/17 [任务表]TODO 注: mac版 %开头表示命令行命令 安装    安装 % brew install redis  确认版本 % redis-server --ver ...

  3. bzoj 1863: [Zjoi2006]trouble 皇帝的烦恼【二分+dp】

    二分答案,注意l是max(a[i]+a[i+1]),r是sum_a 判断的时候用dp,设f[i]为i与1最少的相同颜色数,g[i]为i与1最多的相同颜色数,转移是f[i]=max(a[i]-(w-a[ ...

  4. UVA1437 String painter

    传送门 我们先考虑从一个空白串变成\(B\),这样的话用区间dp,区间dp,设\(f[l][r]\)表示区间\((l,r)\)的最小次数,当\(l==r\)时为\(1\),当\(s[l]==s[r]\ ...

  5. 《Windows核心编程系列》八谈谈用内核对象进行线程同步

    使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ...

  6. treap板子(洛谷 P3369 【模板】普通平衡树(Treap/SBT))

    由于有相同的数,每个节点加一个权值表示此数出现的次数 #include<cstdio> #include<cstdlib> #include<ctime> #inc ...

  7. 分享一款强大的图片查看器插件,手机PC 通吃,功能超级齐全!

    一款强大的图片查看器插件,手机PC 通吃,功能超级齐全! 地址:http://photoswipe.com/

  8. String的用法——判断功能

    package cn.itcast_03; /* String的判断功能: 1.boolean equals(Object obj):字符串的内容是否相同,区分大小写 2.boolean equals ...

  9. hihocoder offer收割编程练习赛11 B 物品价值

    思路: 状态压缩 + dp. 实现: #include <iostream> #include <cstdio> #include <cstring> #inclu ...

  10. vue2.0生命周期函数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...