Форум → Сообщество → Флейм → опять вопрос по sphinx
опять вопрос по sphinx
Страницы: ← Следующая страница →
-
6 августа 2009 г. 11:32, спустя 1 час 5 минут 54 секунды
да, через api php, вот:
function search($search)
{
$this->load->library('sphinx');
$this->sphinx->SetServer('localhost', 3312);
$this->sphinx->SetArrayResult(TRUE);
$this->sphinx->SetMatchMode(SPH_MATCH_ANY);
$this->sphinx->SetSortMode(SPH_SORT_RELEVANCE);
$result = $this->sphinx->Query($search, 'articles');
return $result;
}
Использую как функцию модели в codeigniter. Этот же код работает на winxp. -
6 августа 2009 г. 12:08, спустя 35 минут 50 секунд
в результатах выводиться 1 вместо массива.
Выводится число "1" или один результат?https://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 12:17, спустя 9 минут 14 секунд
true наверно возвращает $this->sphinx->Query($search, 'articles'); -
6 августа 2009 г. 12:25, спустя 7 минут 19 секунд
Сделай еще так:function search($search)
{
var_dump($search);
Передается ли "искомое слово" вообще?https://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 12:58, спустя 33 минуты 54 секунды
в результатах выводиться 1 вместо массива.
Выводится число "1" или один результат?
выводилось число 1. Видимо это было true. Сейчас выводиться bool(false). Вообще не понимаю почему, я ничего не менял.
Искомое слово передается, вот пример:string(4) "sony"
Я вот думаю, если бы все было нормально то оно бы записывало бы в лог запросы. Но query.log пустой… что бы это значило? -
6 августа 2009 г. 13:16, спустя 17 минут 41 секунду
Попробуй вместо$this->load->library('sphinx');
Сделать
require_once ("sphinxapi.php");
$this->sphinx = new SphinxClient();Спустя 25 сек.Для теста, выясним в чем траблhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 13:17, спустя 55 секунд
хехе, а там же есть функция GetLastError();
она выдает:
searchd error: per-query max_matches=1000 out of bounds (per-server max_matches=200) -
6 августа 2009 г. 13:29, спустя 12 минут 21 секунду
хух пля, разобрался слава господу!
оказывается я в конфиге поменял max_maches=200, а было 1000. Поменял назад на 1000. Опять какая-то ошибка была с индексами. Переиндексировал, заработало!
Я понял что нужно использовать GetLastError(); всегда подскажет где копать
adw0rd, с загрузкой библиотеки видимо все нормально, спасибо что пытался помочь) -
6 августа 2009 г. 13:40, спустя 10 минут 32 секунды
searchd error: per-query max_matches=1000 out of bounds (per-server max_matches=200)
у меня была такая трабла, только вот search мне о ней и сказал, странно что ты не увидел эту ошибку когда юзал егоСпустя 99 сек.Я понял что нужно использовать GetLastError(); всегда подскажет где копать
да, но только когда юзаешь API
А так, если юзаешь SphinxSE, то mysql_error() в помощьhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 20:55, спустя 7 часов 15 минут 3 секунды
У меня еще вопрос: а почему оно релевантность непраильно считает?
Вот я например выставил ее так:
$this->sphinx->SetFieldWeights(array ('title' => 20, 'key_words' => 15, 'text' => 10));
Тоесть получается, что если найдет в одной статье (например) совпадение в поле 'title', а в другой статье в поле 'key_words', то должно в результатах первой вывести первую статью. А у меня наоборот. С чем это может быть связано?
Вот так настраиваю перед поиском:
$this->sphinx->SetArrayResult(TRUE);
$this->sphinx->SetMatchMode(SPH_MATCH_ANY);
$this->sphinx->SetSortMode(SPH_SORT_RELEVANCE);
$this->sphinx->SetFieldWeights(array ('title' => 20, 'key_words' => 15, 'text' => 10));
$result = $this->sphinx->Query($search, 'articles'); -
6 августа 2009 г. 21:01, спустя 6 минут 23 секунды
smackthat, в sphinxse я наоборот ставлю "1,2,3" то есть 1 для титла, 2 для содержимого, 3 для теговhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 21:10, спустя 8 минут 34 секунды
а почему? в доках же написано что указывается вес. Тоесть получается, что чем больше вес, тем больше важность этого поля. Или ты выставляешь самыми важными теги? -
6 августа 2009 г. 21:13, спустя 2 минуты 43 секунды
smackthat, нет, я для самых важных ставлю 1, далее для менее важных 2 и т.д.
Это в SphinxSEСпустя 74 сек.
`query` = 'запрос;index=pyha_forum,pyha_forum_delta;weights=1,2,3;limit=1000https://smappi.org/ - платформа по созданию API на все случаи жизни -
6 августа 2009 г. 21:14, спустя 1 минуту 51 секунду
блин я тут тестирую, такое впечатление что сортировка по релевантности вообще не работает. Иногда на первом месте выводит результат в котором одно совпадение в text-e (хотя самый малый вес), а уже потом идут результаты с совпадениями в title и key_words.
А иногда все наоборот.
Что-то странно как-то…
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!