2013-05-02 2 views
0

Я попытался установить Сфинкс как сервис на окнах, и последовал действия, описанные в следующем руководстве:
http://sphinxsearch.com/forum/view.html?id=2972
Но служба не запускается и выдает Error # 1067 Итак, как упоминалось в учебнике, я запускаю searchd с консоли, и это то, что я получаю. Может ли кто-нибудь вести меня, что я делаю неправильно?Брус запуск службы поиска Sphinx на окнах

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 

ответ

0

Я не могу дать вам полный ответ, потому что у меня есть одна и та же «проблема». Тем не менее, я, вероятно, могу дать вам подсказку.

В принципе, вы уже начали демон, который является хорошей новостью. Когда вы запустите searchd с консоли и получите сообщение accepting connections, вы можете начать задавать вопросы! searchd готов ответить (до тех пор, пока он запускается в окне консоли). Я лично задаю вопросы с VB.NET, используя Sphinx.Client. searchd прослушивает порты 9306 и 9312 (вы можете изменить его в конфиге), поэтому я отправляю ему вопросы на порт 9312. Он отвечает, и я обрабатываю эти ответы. Это все.

Когда я заканчиваю поиск и закрываю приложение, консоль все еще включена, и мне нужно закрыть его вручную (Ctrl + Break). И меня это немного раздражает. Я бы предположил, что он бежит где-то в фоновом режиме, и я даже не замечаю его (сервис).

До сих пор я не мог понять, почему мой Сфинкс не работал как служба. Теперь у меня это работает. Проблема заключалась в том, что я слепо использовал команду из онлайн-справочника Sphinx и не изменял путь к config соответственно. Первоначально (руководство): 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

Correct является sphinx.conf и не sphinx.conf.in (в моем случае).

Примечание. Если вы уже пытались установить searchd как услугу, вы можете удалить его сначала, так как вы не можете добавить еще одну услугу с тем же именем. Посмотрите, например. http://www.howtogeek.com/howto/windows-vista/how-to-delete-a-windows-service-in-vista-or-xp/. Затем введите правильную команду с правильным путем в вашу конфигурацию. Вы получаете желаемое поведение, то есть обслуживание выполняется в фоновом режиме и не останется в открытом окне консоли.

1

Что работает для меня

  1. Убедитесь, что папки журналов и данные существуют в @ confdir @
  2. Использовать полный путь к файлу конфигурации, а не относительной