Sphinx 死文克斯 联合Mysql实现中文全文索引

        PHP高级工程师之Sphinx中文全文索引

    在这里和大家分享一下Mysql5.5以后支持的全文索引Sphinx安装配置和运行概念。

    如有不善,多提意见(QQ:1595068971-邮箱:[email protected])

  Sphinx服务器支持网络

  工作原理

文件包文件

  api:使用php操纵Sphinx 访问这个文件。

  bin:经常用到的命令(生成Sphinx索引文件,操纵服务)。

  etc:配置文件(csft_mysql.conf,uni.lib“海量词库文件 也叫 切词文件”)。北京-天安门

  var:Sphinx运行中的日志文件。

  生成Sphinx索引文件   就会把sql查询关联语句结果取出来   扔到Sphinx资源包里产生一个二进制资源文件(存储sql语句查询结果)

1.配置

2.生成索引文件

  

  文件另存为  更换编码

3.php操作Sphinx

  php操作Sphinx

    连接api:api文件夹下Sphinx_api.php文件, 引入api类

    $sc = new SphinxClient(); 实例化Sphinx类

    $sc->SetServer(‘localhost‘,9312)  连接服务

    $sc->SetConnectTimeout(10) 连接的超时时间

    $sc->SetMaxQueryTime(30)  最大的查询时间

    $sc->SetArrayResult(true) 返回值类型(数组)

    $sc->SetMatchMode(SPH_MATCH_ANY)  切词方式

      (SPH_MATCH_ALL:完全匹配才查询【‘北京’,‘天安门’,‘北京天安门’】)

      (SPH_MATCH_ANY:单个匹配【‘三个词其中一个就匹配’】)

      (SPH_MATCH_PHRASE:不切词)

    $result = $sc->Query($post ,"*")  查询索引文件(关键字,select)

    搜索后matches返回搜索记录

时间: 2024-08-10 18:43:37

Sphinx 死文克斯 联合Mysql实现中文全文索引的相关文章

MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档[原创]

[文章+程序 作者:张宴 本文版本:v1.0 最后修改:2008.07.01 转载请注明原文链接:http://blog.zyan.cc/post/356/] MySQL在高并发连接.数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大.MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜

mysql 插入中文报错: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value...

总结写在前面, 总结: 当Java通过jdbc链接mysql插入中文时,要保证程序可以正常执行,而且插入的中文不会乱码, mysql服务器端,对数据表(不是数据库)的编码设置,要保证是支持中文的,例如gbk, gb2312, utf-8 jdbc的连接配置,要开启useUnicode=true,并且要设置一个支持中文的编码,不需要跟mysql表的编码保持一致,只需要支持中文就行.例如characterEncoding=utf8 本身的Java文件的编码需要支持中文 ===============

MySQL 插入中文不乱码的5种方法

MySQL 插入中文不乱码的5种方法: 方法一: 登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句 mysql> set names latin1; mysql> source  test.sql; 方法二: 在SQL文件中指定set names latin1;然后登录MySQL,执行相应文件    [[email protected] ~]# cat test.sql  set names latin1; insert ***************

关于MySQL的中文问题(转载)

MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据库字符集.character-set-table:数据库表字符集.优先级依次增加.所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.character-set-client:客户端的字符

Linux--使 MySQL支持中文

使MySQL支持中文 欢迎转载,请保留出处:ZCShou     http://blog.sina.com.cn/zcshou MySQL 4.1及更高版本中,字符集的支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation).对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection). 一.登录MySQL,使用SHOW VARIABLES LIK

mysql数据库 中文乱码

看到一篇很好的文章,转录于此 中文乱码似乎是程序编写中永恒的一个话题和难点,就比如MySQL存取中文乱码,但我想做任何事情,都要有个思路才行,有了思路才知道如何去解决问题,否则,即使一时解决了问题,但过后不久又碰到同样的问题可能又会急得抓狂,MySQL中文乱码问题就是如此. 仅仅对MySQL中文乱码的解决而言,我认为主要的一个原则可以归结为五个字:"编码一致性",只要遵循了这个原则,那么中文乱码就不难解决,那么何为"编码一致性"呢?子猴总结为有如下四个方面的编码必须

ubuntu mysql emma中文乱码问题解决

ubuntu mysql emma中文乱码问题解决 emma默认用apt-get 安装的话,emma是不支持中文的,配置文件或直接修改emma程序源文件(python). apt-get安装emma sudo apt-get install emma ubuntu的apt-get 安装emma是在/usr/share/emma目录下面. cd /usr/share/emma/emmalib sudo vim __init__.py 找到 "db_encoding": "lat

solr 4.8+mysql数据库数据导入 + mmseg4j中文全文索引 配置笔记

1.如何将solr部署,请参考之前的文章 2.按上述配置好后,在solr_home文件夹中,将包含collection1文件夹,这就是solr的一个实例.下面我们来看看collection1中的文件内容. collection1中包含conf和data两个子文件夹.data中包含tlog和index(如果没有也没关系,稍后再solr建立索引时,将会被创建).tlog是记录日志的文件夹,index是存放索引的文件夹.conf中包含lang文件夹和若干文件.lang文件夹中包含的是词库文件,但是so

Mysql 数据库中文乱码问题

Servlet写Mysql数据库中文老师乱码,找了一下发现是数据库建库的时候编码没有设置正确. ALTER DATABASE usercenter CHARACTER SET utf8; 修改一下就OK 了.