博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sphinx2.2.11在windows7 下的安装使用
阅读量:6859 次
发布时间:2019-06-26

本文共 2794 字,大约阅读时间需要 9 分钟。

hot3.png

一、下载地址

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

你可能感兴趣的文章
[译] 你正在阅读的用户体验文章是不是在向你进行推销?
查看>>
RQPro 公募FOF策略实例——晨星基金筛选和风险平价配置
查看>>
我的前端2019面试指引
查看>>
iOS热更新实现方式
查看>>
创建型模式 工厂模式
查看>>
最新安装CocoaPods教程
查看>>
Swizzling Method
查看>>
React同构踩坑记录
查看>>
教你用Python如何实现微信自动回复功能,机器人自动对话!
查看>>
使用var定义变量和不使用的区别
查看>>
React两个bug踩坑
查看>>
vue引入mxGrpah
查看>>
合并冲突 - 每天三分钟玩转Git(三)
查看>>
你们公司今年会发年终奖吗?Python告诉你大家怎么说
查看>>
Derek解读Bytom源码-Api Server接口服务
查看>>
Java之JDK7的新语法探索
查看>>
微软大秀Windows 10中的MyOffice App免费功能
查看>>
UDP协议
查看>>
学jstl,看这一篇就够了
查看>>
Webpack之tapable深入学习(一)--Sync*Hook
查看>>