此次演示的环境是: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. Python profiling

    Profiling(性能调试)是我一直很感兴趣的一个话题,之前给大家介绍过Datadog这个工具,今天我们来看看Python语言中有哪些方法来做Profiling. Poorman's Profile ...

  2. 后缀数组 POJ 1743 Musical Theme

    题目链接 题意:给定n个数字,求超过5个数字的,最长的,变化相同的,不相交的重复子串 分析:男人8题中的一题!数列相邻两项做差,形成新数列,即求数列中的最长重复子串(不可相交). 后缀数组+二分答案. ...

  3. Only Link: Reading links for button/a etc

    When To Use The Button Element: https://css-tricks.com/use-button-element/ The Difference Between An ...

  4. UVa 11388 & 丝帛

    一直在想丝帛题要不要贴呢...后来觉得还是贴了吧...反正没人看...blog是开给自己看的...偶尔无聊打打blog也显得生活非常充实... 题意: 给一个gcd和lcm求满足啊他们的最小的a和b. ...

  5. 【bzoj3439】kpm的mc密码 题解

    题目大意: 有n个字符串,编号为1~n,求每一个字符串在其他字符串中以它为后缀的字符串中编号第k小的字符串的编号. 思路: 将字符串倒过来建Trie,记录每个结尾节点的编号(可能会有重复,所以开一个v ...

  6. ACM +-字符串

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换. ...

  7. 【BZOJ2038】【2009国家集训队】小Z的袜子(hose) 分块+莫队

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...

  8. js-小效果-瀑布流

    <!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...

  9. IOS 蓝牙相关-基础知识(1)

    蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...

  10. 在Linux中安装Tomcat

    带Linux的虚拟机中安装Tomcat 一.从官方网站上下载tomcat软件包.http://tomcat.apache.org/ apache-tomcat-7.0.33.tar.gz 二.下载到本 ...