Реклама на сайте Advertise with us

Sphinx и индексирование MySQL столбцов в базе

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

📈sflash.biz

С нами с 03.11.12
Сообщения: 3912
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 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' ) );

?

0
 



С нами с 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 создает свой словарь, поэтому нет смысла кодировать исходные значения.

9
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3912
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 14/09/16 в 14:48       Ответить с цитатойцитата 

lalex:
А не вкурсе, такой синтаксис сейчас работает в sphinxapi.php:
Код:
$cl->SetFilter ( "niche", array ( 'gay','shemale','lesbo' ) );

? (Именно массив, с строковыми атрибутами)
В документации только целочисленные индексы в примерах.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »