Как ограничить количество документов-кандидатов при использовании параметра "fq" в SOLR - PullRequest
0 голосов
/ 09 января 2019

Я считаю, что это потребует пользовательского кодирования, но я хотел бы сделать это

a) требует, чтобы запросы, выполняемые к solr, содержали значение для параметра запроса фильтра (fq)

b) закоротить запрос, если результирующий список кандидатов из запроса фильтра больше некоторого порога.

Судя по взгляду на код SOLR, кажется, что я могу сделать первое, предоставив пользовательский компонент для обработчика запроса / select (через файл конфигурации), но второе немного мутнее.

Кто-нибудь знает, что плагин уже реализует что-то подобное? Или есть предложения как это реализовать? Насколько я вижу, если я расширяю QueryComponent и внедряю собственный SolrIndexSearcher, это должно быть возможно, но я не вижу, где именно используется кэш фильтра (получено из найденного кеша).

изменить, добавить пример запроса

Вот пример запроса после его очистки

https: // .... д = STARTDATE% 3A% 5B2019-01-10T00% 3A00% 3A00.000Z% 20to% 202019-01-10T23% 3A59% 3A59.999Z% 5D% 20and? % 20 (название% 3A% 22grr% 22) & мас = & рода JSON = StartDate% 20asc & фл = RecordID, StartDate, aName, aSomethingOrOtherType, и начать = 0 & строк = 50 & joinCollection =

Приложение является мультитенантным, и в то время как некоторые арендаторы выдают меньший объем документов, другие производят очень большие объемы. Мы уже вводим диапазон дат в поиске, чтобы ограничить общее количество потенциальных документов, которые мы просматриваем, но нам действительно хотелось бы определить общее количество потенциальных документов, прежде чем рассматривать что-либо еще, и отклонить запрос, если он слишком широкий. , Таким образом, мы не несем затрат на дополнительные параметры поиска или сортировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...