资讯专栏INFORMATION COLUMN

sphinx中文索引实现中文检索

SoapEye / 1376人阅读

摘要:一介绍与好处介绍本身是一个中文检索索引技术索引主键唯一普通全文是俄罗斯人开发一款速度效率非常高的索引技术是来替代全文索引的本身的全文索引技术特性表现一般,一般数据库使用全文索引都不是使用本身的,都需要借助第方索引技术支持,搜索引擎百

一.sphinx介绍与好处

介绍

sphinx本身是一个中文检索索引技术 mysql索引: 主键、唯一、普通、全文(match/agaisnt)
sphinx是俄罗斯人开发一款速度、效率非常高的索引技术sphinx是来替代mysql全文索引的
mysql本身的全文索引技术特性表现一般,一般数据库使用全文索引都不是使用本身的,都需要借助第3方索引技术支持,php->mysql->sphinx> , java->oracle->lucene 搜索引擎(百度/google等)要大量使用“检索技术”

 2:sphinx使用的好处:

① 快速检索用户需要的模糊信息(替代like使用) ②
本身还有中文“分词”的实现,英文分词通过”空格”区分,中文分词通过技术实现(例如”匹配”,使用习惯)

二.怎么使用sphinx呢??

sphinx是专业做数据检索的一个技术用户去sphinx做模糊查询,查找“北京”相关的信息,sphinx把“北京西二旗”全部信息的“主键id”值给用户返回之后,用户通过“许多-主键id”值去数据库 获得相关的记录信息,并返回信息。
查询多个主键id信息,使用了in查询

1:首先你需要下载sphinx功能包

具体是下载coreseek:中文+sphinx解压压缩文件到软件的运行目录即可,路径不能有中文和空格                  

下载地址:http://www.coreseek.cn/news/7/52/]

2: 为数据库数据创建索引文件导入操作的数据表数据(5万条记录)
// 注意:如果之前没有选择数据库,那么使用use选择数据库使用管理员权限的cmd

mysql > use forum ;
mysql> source d:/forum.sql #确保数据导入成功 不然没法建立索引

3: 做索引配置, 注意用编辑器打开,不要使用记事本sphinx.conf创建索引的执行程序文件软件目录/bin/indexer.exe

命令:indexer.exe -c 配置文件路径  source名称    

4:查看索引文件

4.1 使用sphinx速度对比

安装sphinx服务使用管理员cmd执行以下命令
searchd.exe --install -c 配置文件路径 参数顺序一定要不能颠倒。

4.2:查看并启动sphinx查询服务

searchd --install -c  C:wamp64incoreseek-3.2.14-win32sphinx.conf

如果安装服务之后,不能够正常启动服务,可能就是安装的时候,参数顺序不对。卸载重装
searchd.exe --delete删除服务

第三步:php出场了 如何使用php搞定sphinx呢??so easy

php连接sphinx,需要引入api文件,进行内容模糊检索查询:
原理:php传入关键字给sphinx,sphinx根据自身算法找到数据的主键id,mysql根据id去查询数据 前提是主键必须存在哦!

代码示例:

  /**
     * 连接sphinx服务 进行查询  
     * @param $key 搜索的关键字
     * @return bool|mixed
     */
    public function linkSphinx($key)
    {
        //实列化
        $cl = new SphinxClient ();
        $cl->SetServer("127.0.0.1", 9312); //连接sphinx服务
        $cl->SetConnectTimeout(3); //超时时间
        $cl->SetArrayResult(true);  //以数组形式返回获得的结果
        $cl->SetMatchMode(SPH_MATCH_ANY);  //分词,收集分词任何部分检索的结果
        $cl->setLimits(0, 12); //限制获取记录条数
        //(前12个记录信息)
        //索引源名称
        $index_name = "dizhi";
        //$res = $cl->Query ( "被检索的关键字", "索引名称" );
        $res = $cl->Query($key, $index_name);
        return $res;
    } 

① 通过两个字段查找
② 有分词查找体现
获取到maths的下标 取到id 根据主键id去查询数据

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22423.html

相关文章

  • Centos 编译安装sphinx-0.9.9全文检索

    摘要:简介是开源的搜索引擎,它支持英文的全文检索。但是往往我们要求的是中文索引,怎么做呢国人提供了一个可供企业使用的,基于的中文全文检索引擎。 Sphinx 简介 Sphinx是开源的搜索引擎,它支持英文的全文检索。所以如果单独搭建Sphinx,你就已经可以使用全文索引了。但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的,基于Sphinx的中文全文检索引擎。也就是说Cor...

    LeoHsiun 评论0 收藏0
  • Centos 编译安装sphinx-0.9.9全文检索

    摘要:简介是开源的搜索引擎,它支持英文的全文检索。但是往往我们要求的是中文索引,怎么做呢国人提供了一个可供企业使用的,基于的中文全文检索引擎。 Sphinx 简介 Sphinx是开源的搜索引擎,它支持英文的全文检索。所以如果单独搭建Sphinx,你就已经可以使用全文索引了。但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的,基于Sphinx的中文全文检索引擎。也就是说Cor...

    马龙驹 评论0 收藏0
  • Centos 编译安装sphinx-0.9.9全文检索

    摘要:简介是开源的搜索引擎,它支持英文的全文检索。但是往往我们要求的是中文索引,怎么做呢国人提供了一个可供企业使用的,基于的中文全文检索引擎。 Sphinx 简介 Sphinx是开源的搜索引擎,它支持英文的全文检索。所以如果单独搭建Sphinx,你就已经可以使用全文索引了。但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的,基于Sphinx的中文全文检索引擎。也就是说Cor...

    fjcgreat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<