Поиск без max_matches

Добрый день.
Есть индекс на 50млн плюс минус записей. Выбираю из него последовательно все записи с limit и offset. max_matches выставляю в 1000. Поиск очень быстрый, но с offset 1000 записей уже не возвращает. Ставлю 100млн. Все записи на месте, но выборка долгая. Как правильно сделать быструю выборку по всем записям?

День добрый. Можно так:

  • найти min(id)
  • найти max(id)
  • сделать N запросов типа where id >= min and id < max, постепенно увеличивая min и max.

А разве не надо при этом max_matches указывать? В памяти же все равно только 1000 будет по дефолту? По смыслу названия понятно, что этот параметр указывает на максимальное количество возвращаемых результатов. Но в случае с limit и offset он как-то не так работает.

В случае с limit и offset правило такое: max_matches должен быть >= offset + limit.

В случае с фильтром (WHERE) max_matches должен быть >= limit, а limit должен быть >= кол-ву найденных документов, коль уж они вам нужны все, соответственно если вы делаете select * from idx where id >= 1000000 and id < 1010000, то max_matches может быть нужно сделать 10000, как и limit (он по дефолту 20). НО max_matches не нужно при этом делать 1010000.

Спасибо.