📈sflash.biz
С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447
|
Добавлено: 14/09/16 в 11:22 |
Sphinx 2.2.9-id64
1) Подскажите, играет ли роль будут ли поля или атрибуты проиндексированы в самой MySQL для скорости работы Sphinx или достаточно только Primary индекса для того, чтоб сам Sphinx\sphinxapi мог быстро по этому индексу "прыгать" по базе при отдаче выборки?
2) Есть атрибут, который использую для фильтрации при запросе. Как известно какждый атрибут и каждый лишний накладывает свои расходы на скорость окончательного запроса. Отсюда:
а) нужно ли индексировать в самой MySQL столбец атрибута?
б) Что эфективнее закодировать атрибут числом, чтоб фильтровать его в таком виде Код: | $cl->SetFilter ( "forum_id", array ( 1,3,7 ) ); |
или можно сделать его более удобным для человека-понимания строковым (версия 2 это уже умеет), чтоб было
Код: | $cl->SetFilter ( "niche", array ( 'gay','shemale','lesbo' ) ); |
?
|
|
|
|
С нами с 14.11.05
Сообщения: 56
Рейтинг: 177
|
Добавлено: 14/09/16 в 13:48 |
S_Flash писал: | 1) Подскажите, играет ли роль будут ли поля или атрибуты проиндексированы в самой MySQL для скорости работы Sphinx или достаточно только Primary индекса для того, чтоб сам Sphinx\sphinxapi мог быстро по этому индексу "прыгать" по базе при отдаче выборки? |
Sphinx делает выборку документов пачками по первичному (primary) ключу. Остальные индексы роли не играют.
S_Flash писал: | 2) Есть атрибут, который использую для фильтрации при запросе. Как известно какждый атрибут и каждый лишний накладывает свои расходы на скорость окончательного запроса. Отсюда:
а) нужно ли индексировать в самой MySQL столбец атрибута?
б) Что эфективнее закодировать атрибут числом, чтоб фильтровать его в таком виде
|
Атрибуты как раз ускоряют окончательный запрос. При наличии фильтра по атрибуту, Sphinx сначала выделяет документы, которые проходят по этому фильтру, а уже затем делает по ним полнотекстовый поиск. Соответственно, чем меньше останется документов после фильтра по атрибутам, тем быстрее будет выполнен поиск.
а) см. выше про primary индекс. Структура исходной таблицы MySQL не влияет на поиск.
б) при индексации атрибутов Sphinx создает свой словарь, поэтому нет смысла кодировать исходные значения.
|
|
|
|
📈sflash.biz
С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447
|
Добавлено: 14/09/16 в 14:48 |
lalex:
А не вкурсе, такой синтаксис сейчас работает в sphinxapi.php:
Код: | $cl->SetFilter ( "niche", array ( 'gay','shemale','lesbo' ) ); |
? (Именно массив, с строковыми атрибутами)
В документации только целочисленные индексы в примерах.
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |