В сфінкса (sphinx-search) існує дуже хороше рішення для оптимізації процесу індексації.

Суть рішення розглянута в статті " Дельта індекс у Sphinx". Дельта індекси істотно знижують ресурсомісткість постійної переіндексації, дозволяючи робити її частіше і мати більш актуальні дані в результатах пошуку.

Використання дельта індексів проте вимагає періодичного оновлення основного індексу,...

Недавно виникла потреба реалізувати пошук найближчих місць, тобто зробити гео пошук. В MySQL на скільки мені відомо таких вбудованих функцій немає. Є гарний опис як це зробити самому без вбудованих функцій.

Сам автор зазначає що швидкість є досить малою і за допомогою Sphinx можна досягти кращих результатів.

Під час пошуку знайшов гарний опис як організувати geo/spatial пошук за допомогою...

Як виявилось, стандартний підхід для геопошуку в Sphinx не працює.

Тобто якщо ви використаєте для індексування наступний вираз:

sql_query = select id, radians(longitude) as longitude, radians(latitude) as latitude from locations

Індекс не буде створено. Відповідно пошук працювати не буде. Навіть не знаю чи це баг чи фіча, але виправляється досить просто.

Слід додати одне текстове поле до результату:

sql_query = select id, radians(longitude) as longitude, radians(latitude) as latitude, location_name as location_name...
© 2009 - 2018, Розробка - соціальна ІТ спільнота.
Контакти: info@rozrobka.com
Правила користування