此次演示的环境是:win7系统,64位,php5.4.x,apache

sphinx,斯芬克斯(英语不好的同学可以直接读这个音),意狮身人面像

特点:创建索引速度快,3分钟左右能创建100万条记录的索引;检索速度快,1000万的记录检索速度在毫秒级上;为很多脚本语言设计了检索API;专门为php设计了存储引擎插件。

1. 去 sphinx官网 下载一个版本,在 http://sphinxsearch.com/downloads/archive/页面下载以前的版本。我下载是 Win64 binaries w/MySQL+id64 support。(注意:要选择适合自己本地环境的版本)

  (建议初学者别下载最新的版本,因为最新的版本资料少,出了问题初学者自己还解决不了,容易打击学习的信心)。

2. 直接解压到一个目录里,如 D:\sphinx ,新建两个文件夹,data和log。目录结构如下图:

  

3. 移动配置:将"sphinx-min.conf.in"复制到bin目录下,并改名为 "sphinx.conf"。(sphinx-min.conf.in和sphinx.conf.in的区别在于前者将后者存在的注释全去掉了,在我看来,这样更直观简单,注释太多的话,压力太大)

4. 修改配置:打开"sphinx.conf",根据实际情况修改配置。

    配置文件总共分为1个source,名为src1,也就是数据源;2个index,test1和testrt,表示索引;1个indexer,猜测是indexer命令的配置项;1个searchd,猜测是searchd命令的配置项。

    a. 数据源配置。

      就是配置数据库host,user,pass等等之类的,相信大家已经很熟了。sql_query就是一句select语句。sql_attr_xxx表示数据表的字段的属性,主要用于过滤和排序。

      如果数据库是utf8,在sql_port下加一行"sql_query_pre = SET NAMES utf8 "

    

  另外将配置文件所有的 "@CONFDIR@" (表示配置目录)替换为 "D:/sphinx"。

  下面是修改后的配置文件

     #
# Minimal Sphinx configuration sample (clean, simple, functional)
# source src1
{
type = mysql sql_host = localhost
sql_user = root
sql_pass = root
sql_db = test
sql_port = 3306 #如果数据库是utf编码
sql_query_pre = SET NAMES utf8 sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents sql_attr_uint = group_id
sql_attr_timestamp = date_added
} index test1
{
source = src1
path = D:/sphinx/data/test1
} index testrt
{
type = rt
rt_mem_limit = 128M path = D:/sphinx/data/testrt rt_field = title
rt_field = content
rt_attr_uint = gid
} indexer
{
mem_limit = 128M
} searchd
{
listen = 9312
listen = 9306:mysql41
log = D:/sphinx/log/searchd.log
query_log = D:/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = D:/sphinx/log/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = D:/sphinx/data
}

5. 导入 "example.sql" 到数据库。(注意:该数据库就是上面配置中的数据库)

6. 打开CMD窗口:进入bin目录,shift+鼠标右键,选择"在此处打开命令窗口",进入cmd窗口。

  

7. 建立索引:在cmd命令行中输入  indexer.exe --all

  

8. 开启searchd服务:在cmd命令行下输入  searchd.exe

  

9. 成功后测试:

  a. 在D:\sphinx\api下写一个foo.php;

 <?php

     require_once 'sphinxapi.php';

     $s = new SphinxClient();
$s->setServer('localhost', 9312);
$result = $s->Query('number'); //搜索"number"字符串 print_r($result);

  b. 执行这个foo.php;

    在cmd命令输入  php D:\sphinx\api\foo.php ,结果如下

 Array
(
[error] =>
[warning] =>
[status] => 0
[fields] => Array
(
[0] => title
[1] => content
) [attrs] => Array
(
[group_id] => 1
[date_added] => 2
) [matches] => Array
(
[1] => Array
(
[weight] => 1442
[attrs] => Array
(
[group_id] => 1
[date_added] => 1476926888
) ) [2] => Array
(
[weight] => 1442
[attrs] => Array
(
[group_id] => 1
[date_added] => 1476926888
) ) [4] => Array
(
[weight] => 1442
[attrs] => Array
(
[group_id] => 2
[date_added] => 1476926888
) ) ) [total] => 3
[total_found] => 3
[time] => 0.000
[words] => Array
(
[number] => Array
(
[docs] => 3
[hits] => 3
) ) )

    

sphinx配置文件详解 - http://www.cnblogs.com/yjf512/p/3598332.html

windows下安装 sphinx 数据库全文搜索引擎的更多相关文章

  1. Windows下安装Python数据库模块--MySQLdb

    ## 1.下载MySQLdb [去官网](http://pypi.python.org/pypi/MySQL-python/) 下载对应的编译好的版本(现在官网最新版本为1.2.5): MySQL-p ...

  2. Windows下安装Redis数据库并实现C#访问

    1.Redis在Windows下的安装 目前Redis官方并不支持Redis的Windows版本,需要去GitHub下载. GitHub上的Redis分两种,一种是以命令行形式安装的,一种是以Wind ...

  3. windows下安装DB2数据库以及使用Aqua Data Studio链接数据库

    本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之 ...

  4. windows下安装mysql数据库修改端口号

    Window版本 卸载原本的mysql sc delete MySQL //删除mysql 1.下载 1 2 3 MySQL   https://dev.mysql.com/downloads/ins ...

  5. windows下安装mysql数据库

    1. 下载mysql安装文件 MySQL官网:https://www.mysql.com/ 根据机型选择相应的安装版本 这里选择MySQL Installer安装:mysql-installer-co ...

  6. windows下安装redis数据库

    第一步: 下载windows版本的Redis:https://github.com/MSOpenTech/redis/releases 这里我下载的是msi安装程序版: 安装时会让你指定Redis使用 ...

  7. 关于windows下安装mysql数据库出现中文乱码的问题

    首先需要在自己安装的mysql路径下新建一个my.ini文件,如下: 然后在my.ini文件中输入一下内容,主要控制编码问题的为红框部分,如下: 为了方便大家使用,可以复制以下代码: [WinMySQ ...

  8. windows下安装mongodb数据库以及使用数据库

    首先下载mongodb, 链接: https://pan.baidu.com/s/1KyvF7bAqGM8K-ir-hFNhPw 密码: vlc9 双击进行安装 勾选我接受并单击next 选择cust ...

  9. Sphinx在windows下安装使用[支持中文全文检索]

    原文地址:http://www.fuchaoqun.com/2008/11/sphinx-on-windows-xp/ 前 一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/ ...

随机推荐

  1. 微软开放WP开发者回复用户应用评论功能

    1   4月18日,据The NextWeb网站报道,微软今天公布了一项新的开发者试点项目:回复Windows Phone应用评论.该公司表示,它们将在本周推出这项功能,不过目前仅对部分开发者开放. ...

  2. Spring MVC Test -Controller

    http://www.petrikainulainen.net/programming/spring-framework/unit-testing-of-spring-mvc-controllers- ...

  3. Wiki上的Ue4文件结构以及命名规范

    https://wiki.unrealengine.com/Assets_Naming_Convention

  4. javaScript入门第一天

    JavaScript提供七种不同的data types(数据类型),它们是undefined(未定义), null(空), boolean(布尔型), string(字符串), symbol(符号), ...

  5. 由addOneMember引发的思考

    addOneMember是一个方法,这个方法在两处地方重复了. 所以在修改页面的时候,发现修改了一处,如果是新手,肯定不会注意到另外一处有问题,他如果没有看清楚这个类到底整体怎样,那么他会犯的错误是就 ...

  6. Poj1131-Octal Fractions

    Octal Fractions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6669   Accepted: 3641 D ...

  7. ACM: CodeForces 140A New Year Table-数学几何

    CodeForces 140A New Year Table Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d ...

  8. HDU 4503 湫湫系列故事——植树节(单色三角形)

    题目链接 #include <cstdio> using namespace std; int main() { int n,sum,a,t,i; scanf("%d" ...

  9. Linux之进程管理

    ==================================================================================================== ...

  10. iOS上让按钮文本左对齐问题

    一,问题分析 1.在做历史记录视图的时候,由于让键盘退出后才能触发表格的 didselect 那个代理方法,也就是得点两下才触发,而表格中的按钮点一下就可以立即响应. 2.于是我就有了用按钮事件代替 ...