Почему django-sphinx выдает только 20 результатов? Как я могу получить отдых? - PullRequest
3 голосов
/ 20 апреля 2010

Выполнение поиска с использованием django-sphinx дает мне результаты. Сфинкс говорит, что было 68 результатов, но когда я перебираю их, я могу получить только первые 20 из них.

Я уверен, что есть способ обойти это, и что это сделано специально, но это чертовски неприятно для меня. Кто-нибудь знает, как получить полный набор запросов?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2010

Я наконец понял это.

Очевидно, наборы запросов возвращают только 20 совпадений, пока вы не получите доступ к набору запросов. Или что-то в этом роде.

Итак, если вы явно хотите итерации по всему, вы должны сделать:

for result in results[0:results.count()]:
    print result

Или что-то в этом роде, которое явно запросит всю вещь. Тьфу. Это должно быть четко задокументировано ... но это не так.

0 голосов
/ 14 октября 2015

работа для меня:

в конфигурационном файле sphinx:

   max_matches     = 5000

в коде Django:

   desc_obj = Dictionary.search.query( search_desc )
   desc_obj._maxmatches = 5000

или в настройках:

   SPHINX_MAX_MATCHES = 5000
0 голосов
/ 10 февраля 2011

После взлома исходного кода я явно установил переменную _limit. Выполняет работу и выдает фактический лимит:

qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
    print result
...