За последние 24 часа нас посетили 17658 программистов и 1673 робота. Сейчас ищут 1537 программистов ...

Sphinx, проблема при запуске indexer

Тема в разделе "Прочие вопросы по PHP", создана пользователем jack555, 6 май 2011.

  1. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    У меня проблема такая: При выполнении indexer --all пишет:
    FATAL: no indexes found in config file './sphinx.conf'

    Т.е. он конфиг читает, но не находит индексов. Запрос из базы на чистом sql работает, конфиг настроил по мануалам. В интернете просто не нашел решения по этой ошибке. Такое ощущение, что она только у меня.
    Система Windows Xp, использую Денвер.

    Вот код конфига:

    Код (Text):
    1. source testing-index
    2. {
    3.   type = mysql
    4.   sql_host = localhost
    5.   sql_user = user
    6.   sql_pass = 123
    7.   sql_db = search_test
    8.   sql_port = 3306
    9.  
    10.   # main document fetch query
    11.   # mandatory, integer document ID field MUST be the first selected column
    12.   sql_query = SELECT id, header_ru, text_ru FROM category
    13.   sql_attr_uint    = header_ru
    14.   sql_attr_uint    = text_ru  
    15.  
    16.   # document info query, ONLY for CLI search (ie. testing and debugging)
    17.   # optional, default is empty
    18.   # must contain $id macro and must fetch the document by that id
    19.   sql_query_info    = SELECT * FROM category WHERE id=$id
    20. }
    21.  
    22. index testing-index
    23. {
    24.   # document source(s) to index
    25.   # multi-value, mandatory
    26.   # document IDs must be globally unique across all sources
    27.   source      = testing-index
    28.  
    29.   # index files path and file name, without extension
    30.   # mandatory, path must be writable, extensions will be auto-appended
    31.   path      = d:/webservers/home/sphinx/index
    32.  
    33.   # document attribute values (docinfo) storage mode
    34.   # optional, default is 'extern'
    35.   # known values are 'none', 'extern' and 'inline'
    36.   docinfo      = extern
    37.  
    38.   # memory locking for cached data (.spa and .spi), to prevent swapping
    39.   # optional, default is 0 (do not mlock)
    40.   # requires searchd to be run from root
    41.   mlock      = 0
    42.  
    43.   # morphology   = stem_en, stem_ru, soundex
    44.   morphology    = stem_en
    45.  
    46.   # minimum indexed word length
    47.   # default is 1 (index everything)
    48.   min_word_len    = 1
    49.  
    50.   charset_type    = utf-8
    51.   html_strip    = 1
    52.   stopwords    = d:\webservers\home\sphinx\stop_words.txt
    53. }
     
  2. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    нуже!
     
  3. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Попробуй указать полный путь к конфигу.
    А еще как вариант - может виндовые переводы строки ему не нравятся, сохраните конфиг в юникс-формате.
     
  4. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Насчет пути все ок. Я проверял, менял путь на неверный, и была другая ошибка. Попробую сохранить, но не мог бы ты чуть поподробней про эту процедуру.
    И да у меня уже появляется желание поставить линуха.
     
  5. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Никто не пользуется Сфинксом?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    jack555
    попробуй сменить дефис в имени индекса и сорса на нижнее подчёркивание. и ещё бы посоветовал не использовать одинаковые названия для индекса и сорса. если не поможет, подумаем ещё :)
     
  7. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Никто не пользуется денвером, скорее. Особо из тех, кто пользуется сфинксом.
    Вы сфинкс откуда взяли вообще-то?
     
  8. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Поменял названия сорса и индекса на одинаковые без дефосов/подчеркиваний. Опять все тоже.

    Сфинкс качал с офф сайт версию 0.9.9-release Win32 binaries w/MySQL support.

    MiksIr
    Что Вы предлагаете использовать? Поднимать сервак вручную?
     
  9. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Гм, а причем тут тогда денвер, если у вас виндовый сфинкс, виндовый мускуль... только путаете.
    Ща, сек, подниму на виртуальной машинке ваш пример - посмотрим
     
  10. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Все работает. Данное сообщение об ошибке может быть только в том случае, если в файле конфигурации нет блока index. Просто нет и все, т.е. не неверный блок, не неверное название индекса, а просто нет блока index {}.
    Проверьте десять раз файл конфигурации, какое расширение он имеет (надеюсь, у вас в xp включено отображение расширений файлов?). Попробуйте указать явно путь к этому конфигу через --config. Перепишите конфиг заново руками. Больше не знаю, что можно сделать.
     
  11. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Файл с конфигом называется sphinx.conf. Явно путь указывал. Уже говорил что, если неправильный путь к файлу с конфигом то совсем другая ошибка.

    У меня вроде есть блок index. Вы тестировали мой конфиг? Если нет, то выложите, пожалуйста свой рабочий код. Вы можете утверждать, что в моем конфиге есть ошибки?

    И я не понял Вашу фразу про Денвер. Что я сделал не так? Нельзя использовать Сфинкс на локальном сервере или что?
     
  12. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Ваш конфиг скопипейстил в блокнот и сохранил. Все заработало.
    Ну разве что определение источника поправил - написал выборку поля User из таблицы user базы mysql.
    Но это не должно влиять.
    И пусть к индексу еще правил, да.
     
  13. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Тогда у меня вопрос. Запуск файла indexer надо делать самым первым действием, после настройки конфига? Служба searchd уже ПОТОМ запускается?
     
  14. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Не принципиально, indexer-у не нужен searchd.
    Но если searchd запущен, но добавьте indexer-у ключик --rotate, что бы без проблем обновить индексы и сказать searchd про это.
     
  15. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Да я читал про это. Просто хотел уточнить. Не знаю поможет это или нет, но если запускать службу searchd через Администрирование->Службы, то она не хочет запускаться с ошибкой 1067: Процесс был неожиданно завершен.
     
  16. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    а если руками?
     
  17. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Не пробовал. Она же не нужна для индекса.
     
  18. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    но конфиг ему нужен
    если косяк с конфигом - searchd тоже ругнется.
    руками переписать конфиг пробовали? Банально попробовать создать пустой конфиг и написать там
    index test {
    }
     
  19. jack555

    jack555 Активный пользователь

    С нами с:
    5 янв 2011
    Сообщения:
    17
    Симпатии:
    0
    Не пробовал. Может быть проблема в кодировке? Мой конфиг в ANSI.