Задать вопрос

Почему ломается кодировка Sphinx?

Привет.
Есть проблема с кодировкой при передаче параметров в Sphinx.
index posts
{
        source = posts
        path = /var/data/site/posts
        docinfo = extern
        mlock = 0
        morphology = stem_ru, stem_en, soundex
        min_word_len = 2
        min_infix_len = 2
        charset_type = utf-8
        #charset_table = 0..9, A..Z->a..z, _, a..z, U+A8->U+B8, U+B8, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
        #charset_table = 0..9, A..Z->a..z, _, a..z, U+C4->U+E4, U+D6->U+F6, U+DC->U+FC, U+DF,U+E4, U+F6, U+FC
        html_strip = 1
        enable_star = 1
}


Когда я передаю туда текст на кирилице я получаю следующий ответ

array(9) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(6) {
    [0]=>
    string(5) "title"
    [1]=>
    string(4) "text"
    [2]=>
    string(4) "name"
    [3]=>
    string(8) "username"
    [4]=>
    string(10) "first_name"
    [5]=>
    string(9) "last_name"
  }
  ["attrs"]=>
  array(1) {
    ["status"]=>
    int(1)
  }
  ["total"]=>
  string(1) "0"
  ["total_found"]=>
  string(1) "0"
  ["time"]=>
  string(5) "0.000"
  ["words"]=>
  array(2) {
    ["???"]=>
    array(2) {
      ["docs"]=>
      string(1) "0"
      ["hits"]=>
      string(1) "0"
    }
    ["*???*"]=>
    array(2) {
      ["docs"]=>
      string(1) "0"
      ["hits"]=>
      string(1) "0"
    }
  }
}


База в utf8, коннект тоже.
Использую PhalconPHP и на серваке стоит suhosin (может в нем проблема? где то видел)
  • Вопрос задан
  • 3040 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@portfelio
Если вы проиндексировали таблицу, то проблема, конечно, во фреймворке. Проверить это легко:

1) Законнектиться к Сфинксу из консоли
mysql -P9306 --protocol=tcp

2) Попробовать что-нибудь найти
SELECT * FROM posts WHERE title MATCH('текст');
Ответ написан
@emerido Автор вопроса
Только вы наверное хотели сказать?
SELECT * FROM posts WHERE MATCH('@title (текст | *текст*)');

В общем придется делать запросы через SphinxQL.
Было желание через api работать
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽