Sphinx2.2.11在windows7 下的安装使用

一、下载地址

http://sphinxsearch.com/downloads/release/

下载后解压到,e:phptools/sphinx(根据你的情况安装).

将sphinx.conf.in拷贝重名到/bin/sphinx.conf

新建:e:phptools/sphinx/data 文件夹

新建:e:phptools/sphinx/log 文件夹

二、修改配置文件

source src1
{

#数据库信息
    type        = mysql

    sql_host    = localhost  
    sql_user    = root
    sql_pass    = 123456
    sql_db        = test
    sql_port    = 3306
    sql_query_pre   = SET NAMES utf8
    sql_query    = SELECT aid, title,content,addtime FROM article
    
    sql_attr_uint    = aid
    sql_attr_timestamp = addtime
}


index test1
{
    source        = src1

# 放索引的目录

    path        = e:phptools/sphinx/data/test1
    docinfo        = extern
    charset_type    = utf-8
    min_prefix_len  = 0
    min_infix_len   = 0
    min_word_len    = 1

# 简单分词,只支持0和1,如果要搜索中文,请指定为1

    ngram_len    = 1

# 需要分词的字符,如果要搜索中文,去掉前面的注释

    ngram_chars        = U+3000..U+2FA1F

#  指定utf-8的编码表

    charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
}


indexer
{
    mem_limit    = 32M
}


searchd
{
    port        = 3312
    log        =e:phptools/sphinx/log/searchd.log              #新建的log目录
    #query_log    = e:phptools/sphinx/log/query.log      #新建的log目录
    read_timeout    = 5
    max_children    = 30
    pid_file    = e:phptools/sphinx/log/searchd.pid        #新建的log目录
    max_matches    = 1000
    preopen_indexes    = 0
    unlink_old    = 1
    seamless_rotate = 0
}
 

三、给配置中所填的

数据表加数据

104813_cxI7_2544569.png

四、建立索引

E:\phptools\sphinx\bin>indexer.exe --config e:/phptools/sphinx/bin/sphinx.conf --all  

 

五、查找

E:\phptools\sphinx\bin>searchd.exe test

 

六、php使用sphinx

1.启动sphinx服务:E:\phptools\sphinx\bin>searchd.exe

2.将E:\phptools\sphinx\share\doc\api\sphinxapi.php拷贝到apach下的网站目录,以供调用.

3.利用现有索引的简单示例

<?php

require 'sphinxapi.php';
$s = new SphinxClient();
$s->SetServer('127.0.0.1',9312); //服务器名,sphinx端口号
$result = $s->Query('test','test1'); //关键词,索引名(与配置文件里一致,为*时表示全部)
echo '<pre>';
var_dump($result);
echo '<pre>';

 

4.创建实时索引的示例

<?php    
    require 'sphinxapi.php';
        $keyword='中文';    
        $sphinx=new SphinxClient();
        $sphinx->SetServer("127.0.0.1",9312);
        $sphinx->SetMatchMode(SPH_MATCH_ANY);
        //$sphinx->setLimits(0,0); //偏移量
        $result=$sphinx->query("$keyword","test1");
        //echo "<pre>";
        //print_r($result);
        //echo "</pre>";
        $ids=join(",",array_keys($result['matches']));
        mysql_connect("localhost","root","123456");
        mysql_select_db("test");
        $sql="select * from article where aid in({$ids})";
        mysql_query("set names utf8");
        $rst=mysql_query($sql);
        $opts=array(
            "before_match"=>"<button style='font-weight:bold;color:#f00'>",
            "after_match"=>"</button>"
        );

        while($row=mysql_fetch_assoc($rst)){
            $rst2=$sphinx->buildExcerpts($row,"main",$keyword,$opts);
echo '<pre>';
            var_dump($row);
echo '';
            /* echo "第{$rst2[0]}篇贴子<br>";
            echo "标题: {$rst2[1]}<br>";
            echo "内容: {$rst2[2]}<br>";
            echo "<hr>"; */
        }

 

遇到的问题:

1.sphinx php连接失败 提示:connection to 127.0.0.1:9312 failed

原因:sphinx服务器没起来

解决:cmd 长度到E:\phptools\sphinx\bin  执行searchd.exe

E:\phptools\sphinx\bin>searchd.exe

 

2.使用参考http://www.sphinxsearch.org/sphinx-tutorial

3.出现问题着重思考配置文件的配置 是否正确。

 

转载于:https://my.oschina.net/u/2544569/blog/1524814

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值