无法在Windows上运行Sphinx搜索服务

时间:2013-05-02 18:05:23

标签: sphinx

我尝试在Windows上安装Sphinx作为服务,并按照以下教程中提到的步骤进行操作:
http://sphinxsearch.com/forum/view.html?id=2972
但该服务无法启动并提供错误#1067 所以,正如教程中提到的,我从控制台运行searchd,这就是我得到的。 有人可以指导我做错了吗?

c:\sphinx\bin>searchd --console
Sphinx 2.0.7-release (r3759)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file './sphinx.conf'...
WARNING: compat_sphinxql_magics=1 is deprecated; please update your application
and config
listening on all interfaces, port=9312
listening on all interfaces, port=9306
precaching index 'test1'
precached 1 indexes in 0.004 sec
binlog: replaying log C:/sphinx/data/binlog.001
binlog: replay stats: 0 rows in 0 commits; 0 updates; 0 indexes
binlog: finished replaying C:/sphinx/data/binlog.001; 0.0 MB in 0.000 sec
binlog: replaying log C:/sphinx/data/binlog.001
binlog: replay stats: 0 rows in 0 commits; 0 updates; 0 indexes
binlog: finished replaying C:/sphinx/data/binlog.001; 0.0 MB in 0.000 sec
binlog: finished replaying total 2 in 0.003 sec
accepting connections

2 个答案:

答案 0 :(得分:1)

什么对我有用

  1. 确保@confdir @
  2. 中存在文件夹日志和数据
  3. 使用配置文件的完整路径,而不是相对

答案 1 :(得分:0)

我无法给你一个完整的答案,因为我有同样的“问题”。但是,我可以给你一个提示。

基本上,你已经启动了守护进程这是个好消息。当您从控制台运行searchd并收到消息accepting connections时,您可以开始提问! searchd已准备好回答(只要它在控制台窗口中运行)。我个人使用Sphinx.Client向VB.NET提问。 searchd侦听端口9306和9312(您可以在配置中更改它),所以我在端口9312上向他发送问题。他回答并处理这些答案。就是这样。

当我完成搜索并关闭我的应用程序时,控制台仍处于打开状态,我必须手动关闭它(Ctrl + Break)。这就是让我烦恼的原因。我会想象它在后台运行,而我甚至没有注意到它(服务)。

到现在为止,我无法弄清楚为什么我的Sphinx不能作为服务运行。现在我已经开始工作了。问题是我盲目地使用了Sphinx在线手册中的命令,并没有相应地改变路径配置。 最初(手册):C:\Sphinx\bin\searchd --install --config C:\Sphinx\sphinx.conf.in --servicename SphinxSearch

为我工作:C:\Sphinx\bin\searchd --install --config C:\Sphinx\sphinx.conf --servicename SphinxSearch

正确是sphinx.conf而非sphinx.conf.in(在我的情况下)。

注意:如果您已尝试将searchd安装为服务,则可能需要先删除它,因为您无法添加具有相同名称的其他服务。看看例如http://www.howtogeek.com/howto/windows-vista/how-to-delete-a-windows-service-in-vista-or-xp/。然后使用正确的配置路径发出正确的命令。您获得了所需的行为,即服务在后台运行,并且不会保留在打开的控制台窗口中。