Я создаю приложение для поиска, используя django и sphinx. У меня все работает, но когда я ищу, я получаю нерелевантные результаты. Вот что я делаю -
# this is in my trial_data Model
search = SphinxSearch(
index = 'trial_data trial_datastemmed',
weights = {'name': 100,},
mode = 'SPH_MATCH_ALL',
rankmode = 'SPH_RANK_BM25',
)
Когда я ищу, я получаю это (из моих пробных данных) -
from trial.models import *
res = trial_data.search.query('godfather')
for i in res: print i
3 Godfathers (7.000000) Bonanno: A Godfather's Story (1999) (6.400000) Disco Godfather (4.300000) Godfather (6.100000) Godfather: The Legend Continues (0.000000) Herschell Gordon Lewis: The Godfather of Gore (2010) (6.900000) Mafia: Farewell to the Godfather (0.000000) Mumbai Godfather (2.600000) Russian Godfathers (2005) (7.000000) Stan Tracey: The Godfather of British Jazz (2003) (6.200000) The Black Godfather (3.500000) The Burglar's Godfather (0.000000) The Fairy Godfather (0.000000) The Fairy Godfather (0.000000) The Godfather (9.200000) The Godfather (1991) (6.400000)
проблема в том, что самый актуальный результат для «крестного отца» показан на 19-й позиции. Все лучшие результаты - мусор. Как я могу order
или sort
получить результаты, используя Django-sphinx
.
Скорее, что я могу сделать, чтобы сделать результаты более релевантными, используя эту настройку.
ПРИМЕЧАНИЕ. Я использую python 2.6.x + django 1.2.x + sphinx 0.99 + django-sphinx 2.3.3 + mysql
Кроме того, данные, которые я сделал на заказ, составляют всего около 100 строк, и только одно поле name
доступно для поиска. Есть еще одно поле rating
(то, что вы видите в скобках). Поле rating
является атрибутом (не доступным для поиска).