sphinx的简单使用及yii中应用

来源:互联网 发布:linux daemontools 编辑:程序博客网 时间:2024/06/06 05:07

1.说明:

         Sphinx是一个基于SQL的全文检索引擎,可以结合 MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。

         Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

         Sphinx的主要特性包括:高 速索引 (在新款CPU上,近10 MB/秒); 高速搜索 (2-4G的文本量中平均查询速度不到0.1秒); 高可用性 (单CPU上最大可支持100 GB的文本,100M文档); 提供良好的相关性排名 支持分布式搜索; 提供文档摘要生成; 提供从MySQL内部的插件式存储引擎上搜索 支持布尔,短语, 和近义词查询; 支持每个文档多个全文检索域(默认最大32个); 支持每个文档多属性; 支持断词; 支持单字节编码与UTF-8编码;

2.windows下面的安装使用:

     我们一般安装的sphinx大多数是Coreseek

      coreseek是一款基于sphinx开源的搜索引擎,专门为用户提供免费的中文全文检索系统,coreseek被称为带有中文分词的sphinx,sphinx不同的是coreseek增加了一个带有中文分词的词库,这里使用了coreseek 3.2.14版本进行解讲。我是在F盘下安装的所以下面都是在F盘操作。

  1>首先将coreseek-3.2.14-win32.zip 打开解压。

  2>由于coreseek是开源产品,所以在windows下面不需要安装,我们直接进入即可。

  3>进入后我们看到如图所示文件:


 4>进入etc目录打开csft_mysql.conf文件,修改文件:

 

   图文中讲的已经非常详细了,这里我说一下红线标记的地方region_id都要换成你表中的主键id

 5>使用cmd命令行进入该目录如图:

 


  6>输入如下命令 开始生成索引文件

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

  输入完毕之后出现如下图所示你的索引就创建好啦!(如图):


         

  7>输入以下命令开启coreseek

  .\bin\searchd.exe -c .\etc\csft_mysql.conf

  输入完毕如下图所示如果没出任何问题你的coreseek搜索服务就开启拉

 

    安装到这里就结束了!!!下面给大家在php中,yii框架中使用一下。

1.PHP中使用:

        我的环境是PHPStudy所有我放在WWW目录下我创建了一个sphinx文件夹里面放入如图所示的两个PHP文件:

  

    

  Ses.php里面的内容如图:

    <?php
      header("content-type:text/html;charset=utf8");
      include'./sphinxapi.php'; //包含sphinxapi类
     $sphinx=newSphinxClient(); //实例化
     $sphinx->SetServer('127.0.0.1',9312);//链接
     $res=$sphinx->Query("所查字段","*");//查询的字段第二参数是你配置文件里面写得规则这里是*就会匹配所有规则
      print_r($res);//打印数据
   ?>

 

  2.YII框架操作:

     首先我们把生成的索引文件api中的sphinxapi.php放在自己yii框架中的vendor/composer。

    然后在进入vendor/autoload.php文件(如图:)

  

    然后在我们控制器下开始操作(如图)

   
0 0