У меня проблема такая: При выполнении indexer --all пишет: FATAL: no indexes found in config file './sphinx.conf' Т.е. он конфиг читает, но не находит индексов. Запрос из базы на чистом sql работает, конфиг настроил по мануалам. В интернете просто не нашел решения по этой ошибке. Такое ощущение, что она только у меня. Система Windows Xp, использую Денвер. Вот код конфига: Код (Text): source testing-index { type = mysql sql_host = localhost sql_user = user sql_pass = 123 sql_db = search_test sql_port = 3306 # main document fetch query # mandatory, integer document ID field MUST be the first selected column sql_query = SELECT id, header_ru, text_ru FROM category sql_attr_uint = header_ru sql_attr_uint = text_ru # document info query, ONLY for CLI search (ie. testing and debugging) # optional, default is empty # must contain $id macro and must fetch the document by that id sql_query_info = SELECT * FROM category WHERE id=$id } index testing-index { # document source(s) to index # multi-value, mandatory # document IDs must be globally unique across all sources source = testing-index # index files path and file name, without extension # mandatory, path must be writable, extensions will be auto-appended path = d:/webservers/home/sphinx/index # document attribute values (docinfo) storage mode # optional, default is 'extern' # known values are 'none', 'extern' and 'inline' docinfo = extern # memory locking for cached data (.spa and .spi), to prevent swapping # optional, default is 0 (do not mlock) # requires searchd to be run from root mlock = 0 # morphology = stem_en, stem_ru, soundex morphology = stem_en # minimum indexed word length # default is 1 (index everything) min_word_len = 1 charset_type = utf-8 html_strip = 1 stopwords = d:\webservers\home\sphinx\stop_words.txt }
Попробуй указать полный путь к конфигу. А еще как вариант - может виндовые переводы строки ему не нравятся, сохраните конфиг в юникс-формате.
Насчет пути все ок. Я проверял, менял путь на неверный, и была другая ошибка. Попробую сохранить, но не мог бы ты чуть поподробней про эту процедуру. И да у меня уже появляется желание поставить линуха.
jack555 попробуй сменить дефис в имени индекса и сорса на нижнее подчёркивание. и ещё бы посоветовал не использовать одинаковые названия для индекса и сорса. если не поможет, подумаем ещё
Никто не пользуется денвером, скорее. Особо из тех, кто пользуется сфинксом. Вы сфинкс откуда взяли вообще-то?
Поменял названия сорса и индекса на одинаковые без дефосов/подчеркиваний. Опять все тоже. Сфинкс качал с офф сайт версию 0.9.9-release Win32 binaries w/MySQL support. MiksIr Что Вы предлагаете использовать? Поднимать сервак вручную?
Гм, а причем тут тогда денвер, если у вас виндовый сфинкс, виндовый мускуль... только путаете. Ща, сек, подниму на виртуальной машинке ваш пример - посмотрим
Все работает. Данное сообщение об ошибке может быть только в том случае, если в файле конфигурации нет блока index. Просто нет и все, т.е. не неверный блок, не неверное название индекса, а просто нет блока index {}. Проверьте десять раз файл конфигурации, какое расширение он имеет (надеюсь, у вас в xp включено отображение расширений файлов?). Попробуйте указать явно путь к этому конфигу через --config. Перепишите конфиг заново руками. Больше не знаю, что можно сделать.
Файл с конфигом называется sphinx.conf. Явно путь указывал. Уже говорил что, если неправильный путь к файлу с конфигом то совсем другая ошибка. У меня вроде есть блок index. Вы тестировали мой конфиг? Если нет, то выложите, пожалуйста свой рабочий код. Вы можете утверждать, что в моем конфиге есть ошибки? И я не понял Вашу фразу про Денвер. Что я сделал не так? Нельзя использовать Сфинкс на локальном сервере или что?
Ваш конфиг скопипейстил в блокнот и сохранил. Все заработало. Ну разве что определение источника поправил - написал выборку поля User из таблицы user базы mysql. Но это не должно влиять. И пусть к индексу еще правил, да.
Тогда у меня вопрос. Запуск файла indexer надо делать самым первым действием, после настройки конфига? Служба searchd уже ПОТОМ запускается?
Не принципиально, indexer-у не нужен searchd. Но если searchd запущен, но добавьте indexer-у ключик --rotate, что бы без проблем обновить индексы и сказать searchd про это.
Да я читал про это. Просто хотел уточнить. Не знаю поможет это или нет, но если запускать службу searchd через Администрирование->Службы, то она не хочет запускаться с ошибкой 1067: Процесс был неожиданно завершен.
но конфиг ему нужен если косяк с конфигом - searchd тоже ругнется. руками переписать конфиг пробовали? Банально попробовать создать пустой конфиг и написать там index test { }