Sphinx: Как изменить стандартный метод ранжирования?
Есть таблица с названиями фильма (movie_id, title) у одного фильма может быть несколько названий (на разных языках). Мне нужно реализовать полнотекстовый поиск по всем его названиям, фильмы с одинаковой релевантностью далее сортируются по дате.
В данный момент я использую Sphinx и делаю так:
sql_joined_field = all_movie_titles from query; select movie_id as id, title from tbl_movie_titles order by movie_id
Это единственное поле, по которому происходит поиск.
Как я понимаю, Sphinx ищет вхождения ключевой фразы в каждом названии фильма и по количеству этих вхождений проставляет вес, но у некоторых фильмов может быть 2 названия, а у некоторых 10. Т.к. некоторые ключевые слова часто дублируются в разных названиях одного фильма, то получается, что из двух одинаково релевантных фильмов один получается более релевантный из-за того, что у него больше названий и соответственно больше вхождений ключевого слова.
Я пробовал использовать разные ранкеры, везде получается плохо.
Как сделать так чтобы sphinx считал вес фильма не по всем названиям, а отдельно по каждому названию находил вес и ставил наибольший вес как итоговый?
Или с помощью чего и как это можно реализовать на другом движке, например, с помощью elastic search?
Заранее благодарен