php + mysql + sphinx 的全文检索(2)】的更多相关文章

简单 使用php api 去查询 sphinx 的索引数据 $sphinx = new SphinxClient();                 $sphinx->SetServer ( 'localhost', 9312 ); //sphinx的主机名和端口          //设置返回结果集为php数组格式         $sphinx->SetArrayResult ( true );         //匹配结果的偏移量,参数的意义依次为:起始位置,返回结果条数,最大匹配条数…
最近在做一个搜索引擎,主要是对图书方面的对象级的搜索,首先来了解下Sphinx吧. 它能够提高你的查询的速度,这个不是一般的快. Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,他可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索.         Sphinx特别为一些脚本语言设计搜索API接口,如:PHP.Python.Perl.Ruby等,同时为MySQL也设计了一个存储引擎插件. Sphinx单一索引最大可包含1亿…
一.前言 今天一个同事问我,如何使用 Mysql 实现类似于 ElasticSearch 的全文检索功能,并且对检索关键词跑分?我当时脑子里立马产生了疑问?为啥不直接用es呢?简单好用还贼快.但是听他说,数据量不多,客户给的时间非常有限,根本没时间去搭建es,所以还是看一下 Mysql 的全文检索功能吧! MySQL 从 5.7.6 版本开始,MySQL就内置了ngram全文解析器,用来支持中文.日文.韩文分词.在 MySQL 5.7.6 版本之前,全文索引只支持英文全文索引,不支持中文全文索引…
测试平台:Center OS 1.设置环境,升级/安装系统基础依赖包:m4.autoconf.automake.libtool #设置路径和中文环境: $ export PATH=/usr/local/bin:$PATH $ export LC_ALL=zh_CN.UTF-8 $ export LANG=zh_CN.UTF-8 #下载安装基础依赖包 $ curl -O -L http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz $ tar -xzvf…
MySQL目前版本的全文检索没有对中文很好的支持,但可以通过安装mysqlcft插件来实现,具体的安装使用方法:http://blog.s135.com/post/356/ mysqlcft的官方网站上标明支持MySQL5.1(https://code.google.com/p/mysqlcft/),但发现在MySQL5.5和之前的版本中都是可以使用的,但在MySQL5.6中应用这个插件,并进行数据插入时会导致MySQL崩溃,并且会使表的索引文件损坏,不过也算说得过去,毕竟这个项目2008年以后…
对于一些简单的检索可以通过mysql自带的全文索引及 MATCH AGAINST 查询语句实现.实验步骤如下.1.建表DROP table IF exists con_video_file_des_test;CREATE TABLE `con_video_file_des_test` (`content_id`  bigint(20) NOT NULL AUTO_INCREMENT COMMENT '视频ID' ,`video_title`  varchar(60) CHARACTER SET…
InnoDB存储引擎从1.2.x开始支持全文索引技术,其采用full inverted index的方式.在InnoDB存储引擎中,将(DocumentID,Postition)视为一个ilist.因此在全文检索的表中,有两个列,一个是word字段,一个是ilist字段.并且在word字段上有设索引.此外,由于InnoDB存储引擎在ilist字段上存放了Position信息,故可以进行Proximity Search,而MyISAM不支持该特性 如之前所说,倒排索引需要将word存放在一个表中,…
介绍两种全文检索的技术. 1.  lucene+ 中文分词(IK) 关于lucene的原理,在这里可以得到很好的学习. http://www.blogjava.net/zhyiwww/archive/2006/07/07/57122.html 本帖主要贴几个关于lucene的工具类. 索引建立 package com.lpm.fanger.search.base; import java.io.File; import java.io.IOException; import java.text.…
今天刚刚学习了一下,就直接分享上去,有些还没有接触,如果有问题请指正,谢谢 sphinx是什么? Sphinx是一个全文检索引擎.主要为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能. Sphinx可以非常容易的与SQL数据库和脚本语言集成. 当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据. 通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS 的原生支持) Sphinx的特性? 高速的建立索引(在当代CP…
Sphinx的特点 快速创建索引:3分钟左右即可创建近100万条记录的索引,并且采用了增量索引的方式,重建索引非常迅速. 闪电般的检索速度:尽管是1千万条的大数据量,查询数据的速度也在毫秒级以上,2-4G的文本量中平均查询速度不到0.1秒. 为很多脚本语言设计了检索API,如PHP,Python,Perl,Ruby等,因此你可以在大部分编程应用中很方便地调用Sphinx的相关接口. 为MySQL设计了一个存储引擎插件,因此如果你在MySQL上使用Sphinx,那简直就方便到家了. 支持分布式搜索…