Как ускорить Sphinx?

Здравствуйте.

Есть сервер — SSD, 64ГБ ОЗУ, два процессора по 12 ядер
База — 60 млн строк (индексируемые значения тоже строка <255 символов).

В среднем сфинкс-поиск занимает 0,04—0,08 сек. Но по некоторым запросам сфинкс ищет значительно дольше, аж до 0,6 сек.

Прочитал статью на хабре про разделение индексов, разделил на 4, скорость не изменилась, после разбил на 24 индекса (по числу ядер), ситуация не изменилась.

Какие ещё способы тюнинга sphinx существуют? Возможно какие-то параметры изменить? И почему разделение индекса совсем не ускорило поиск?

UPD. выборку всегда делаю следующим способом из php:
$cl = new SphinxClient ();
$cl->SetServer ( "localhost", 9312 );
$cl->setSortMode ( SPH_SORT_RELEVANCE );
$cl->setMatchMode ( SPH_MATCH_PHRASE );
$cl->setRankingMode ( SPH_RANK_PROXIMITY_BM25 );

$cl->setLimits (0, 200);
$result = $cl->Query($string);

в $string 1—4 слова, например «помидоры» или «сажаем помидоры весной»
  • Вопрос задан
  • 486 просмотров
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
приличия ради надо уменьшить размер индекса скажем мелкие слова не индексить
ну и стоит посмотреть квери лог
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
ну, на 24, конечно, круто что делится
но Сфинксу же как-то и склеить их нужно потом: 4 и 24 немного отличается число шагов
что касается
И почему разделение индекса совсем не ускорило поиск?

бессмысленно говорить без бенчмарков и фактов: даже запросы неизвестны, может, вы все всегда выгребаете и потом фильтруете
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы