当前位置: 代码迷 >> PHP >> sphinx匹配有关问题
  详细解决方案

sphinx匹配有关问题

热度:30   发布时间:2016-04-28 18:08:07.0
sphinx匹配问题
配置好像是没什么问题的,在命令行下可以取得匹配结果,但是引入到PHP中却没有结果,用的是CORESEEK。
今天刚学sphinx,不知是哪里出了问题,上网查也没碰到类似问题:
这是配置文件:

#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/
#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

#源定义
source cetsix
{
    type                    = mysql
    sql_host                = localhost
    sql_user                = root
    sql_pass                = cai123
    sql_db                  = words
    sql_port                = 3306
    sql_query_pre           = SET NAMES UTF8
sql_query               = SELECT id, meaning ,lx FROM cetsix
}

#index定义
index cetsix
{
    source            = cetsix             #对应的source名称
    path              = E:\CodeEdit\php\ciba\niujin-alpha\sphinx\var\data\cetsix
    docinfo           = extern
    mlock             = 0
    morphology        = none
    min_word_len      = 1
    html_strip        = 0

    charset_dictpath = E:\CodeEdit\php\ciba\niujin-alpha\sphinx\etc
    charset_type        = utf-8
}

indexer
{
    mem_limit            = 128M
}

#searchd服务定义
searchd
{
    listen                  = 3312
    read_timeout         = 5
    max_children         = 30
    max_matches             = 100
    seamless_rotate         = 1
    preopen_indexes         = 0
    unlink_old              = 1

#最大允许的过滤器数
    max_filters        = 256
    #每个过滤器最大允许的值的个数
    max_filter_values  = 4096


#日志文件保存路径
    pid_file = E:\CodeEdit\php\ciba\niujin-alpha\sphinx\var\log\searchd_mysql.pid  
    log = E:\CodeEdit\php\ciba\niujin-alpha\sphinx\var\log\searchd_mysql.log        
    query_log = E:\CodeEdit\php\ciba\niujin-alpha\sphinx\var\log\query_mysql.log 
}


这是PHP测试代码:

<?php
header("content-type: text/html; charset=utf-8");
require_once "sphinxapi.php";
$sphinx = new SphinxClient();
$sphinx->setServer("127.0.0.1", 3312);
$sphinx->setMatchMode('SPH_MATCH_ANY');
$res = $sphinx->query('man', "cetsix");
var_dump($res);
?>

数据库编码如下:

mysql> SHOW CREATE TABLE cetsix
    -> ;
+--------+---------------------------------------------------
| Table  | Create Table
+--------+---------------------------------------------------
| cetsix | CREATE TABLE `cetsix` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `word` varchar(255) NOT NULL,
  `meaning` varchar(255) NOT NULL,
  `lx` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13325 DEFAULT CHARSET=utf8 |
+--------+---------------------------------------------------

在命令行下是可以返回结果的:

C:\windows\system32>E:\CodeEdit\php\ciba\niujin-alpha\sphinx\bin\search.exe  --c
onfig E:\CodeEdit\php\ciba\niujin-alpha\sphinx\sphinx.conf  man
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

 using config file 'E:\CodeEdit\php\ciba\niujin-alpha\sphinx\sphinx.conf'...
index 'cetsix': query 'man ': returned 199 matches of 199 total in 0.001 sec

displaying matches:
1. document=4, weight=1
2. document=10, weight=1
3. document=24, weight=1
4. document=45, weight=1
5. document=186, weight=1
6. document=193, weight=1
7. document=239, weight=1
8. document=240, weight=1
9. document=394, weight=1
10. document=454, weight=1
11. document=466, weight=1
12. document=483, weight=1
13. document=514, weight=1
14. document=543, weight=1
15. document=653, weight=1
16. document=750, weight=1
17. document=930, weight=1

服务也启动正常。。 真不知道是哪里出了问题

------解决思路----------------------
我去 大早上的看见有人送分
------解决思路----------------------
接分啦