Laravel Scout TNTSearch - лимит 500 результатов - PullRequest
1 голос
/ 18 мая 2019

При поиске с помощью Laravel Scout я обнаружил, что возвращаются только первые 500 результатов.Я посмотрел базу данных SQLite, которую создает индексирование TNTSearch, и у нее более 500 совпадений.

SELECT COUNT(DISTINCT doclist.doc_id)
FROM wordlist
JOIN doclist ON doclist.term_id = wordlist.id
WHERE wordlist.term = 'qui'

Приведенный выше запрос возвращает 1139.

This: Model::search('qui')->get()->count() возвращает 500.

Я не смог определить, откуда исходит предел 500.Я подумал, что это могут быть настройки чанкинга в config\scout.php, но изменение этих значений не влияет на мой вывод.

Класс драйвера (vendor/teamtnt/laravel-scout-tntsearch-driver/src/Engines/TNTSearchEngine.php) имеет следующие строки:

    protected function performSearch(Builder $builder, array $options = [])
    {
        $index = $builder->index ?: $builder->model->searchableAs();
        $limit = $builder->limit ?: 10000;

$builder->limit устанавливается функцией take().Код заставляет меня поверить, что я получил бы до 10 000 результатов, если бы не определил предел.Тем не менее, это: Model::search('qui')->take(750)->get()->count() по-прежнему возвращает 500.

В конце я хочу получить полный набор результатов, но я даже не могу изменить предел.


Я открыл проблему в проекте на тот случай, если это ошибка.

...