首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows - Sphinx配置

Windows - Sphinx配置
EN

Stack Overflow用户
提问于 2013-11-29 22:13:10
回答 2查看 1.6K关注 0票数 0

我有一个关于sphinx配置和php api使用的问题(在Windows7上)。

我已经配置了索引器: indexer --config sphinx.conf test1并启动了服务: searchd -- sphinx.conf --config cmd当我使用cmd控制台进行搜索时,我找到了结果,但是...不能使用php api。

这里出现错误:查询失败:无法读取搜索响应(status=2613,ver=11830,len=774976045,read=70)。

下面是我的conf文件:

代码语言:javascript
复制
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

source src1
{
type            = mysql

sql_host        = localhost
sql_user        = root      
sql_pass        =
sql_db          = test
sql_port        = 3306  # optional, default is 3306

sql_query       = \
    SELECT id, UNIX_TIMESTAMP(addTime) AS addTime, title, brand, material, size, description, c.name as categoryName \
    FROM test \
    JOIN category c ON c.id = advert.categoryId


sql_attr_uint       = id
sql_attr_timestamp  = addTime

sql_query_info      = SELECT * FROM test WHERE id=$id
}


index catalog 
{
source          = src1
path            = C:\wamp\www\sphinx\catalog
docinfo         = extern
charset_type    = utf-8


min_word_len            = 3
min_prefix_len          = 0
min_infix_len           = 3
}

indexer
{
mem_limit       = 32M
}


searchd
{
listen          = 9312
listen          = 9306:mysql41
log             = C:\wamp\www\sphinx\log\searchd.log
query_log       = C:\wamp\www\sphinx\log\query.log
read_timeout        = 5
max_children        = 30
pid_file        = C:\wamp\www\sphinx\log\searchd.pid
max_matches     = 1000
seamless_rotate     = 1
preopen_indexes     = 1
unlink_old      = 1
workers         = threads # for RT to work
binlog_path     = C:\wamp\www\sphinx\data
}

php文件:

代码语言:javascript
复制
<?php
include('sphinxapi.php');

//Sphinx
$s = new SphinxClient;
$s->setServer("localhost", 3306);
$s->setMatchMode(SPH_MATCH_EXTENDED2);

$result = $s->query("@title jean");

if ($result['total'] > 0) {
foreach ($result['matches'] as $id => $otherStuff) {
        echo $id;
}
} else {
echo "Query failed: " . $s->GetLastError() . ".\n";  
}

?>

EN

回答 2

Stack Overflow用户

发布于 2013-11-29 22:22:25

您在php脚本3306 -它的mysql服务器的端口行:

代码语言:javascript
复制
$s->setServer("localhost", 3306);

尝试指向端口9312

还可以尝试执行以下步骤:

  1. 删除已安装的windows服务。

带有配置文件完整路径的searchd --delete

  • Install windows服务

搜索--安装--配置fullPathToSphinx.conf

  • You需要手动运行服务或重新启动PC。要手动启动服务:从命令行程序services.msc运行,并在服务列表中找到searchd并启动它。
票数 2
EN

Stack Overflow用户

发布于 2013-12-23 12:54:24

在Windows上不要使用"localhost“。

$s->setServer("127.0.0.1",9312);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20287685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档