Я застрял в довольно сложной проблеме. Я реализую функцию на своем веб-сайте, в которой человек получает все результаты, соответствующие определенным критериям. Критерии соответствия могут быть любыми. Однако, для простоты, назовем критерии соответствия «возраст». Это означает, что функция вернет все имена учеников из базы данных (которая находится в сотнях тысяч) со студентом, возраст которого соответствует «самому» с предоставленным параметром сверху.
Мои подходы:
1- У меня есть сервер Solr. Поскольку мне нужно реализовать это с разбивкой по страницам, мне нужно будет запросить Solr несколько раз (так как мой размер страницы solr равен 10), чтобы найти «почти абсолютное» соответствие студенту в режиме реального времени. Это очень интенсивно. Эта проблема сводится к эффективному извлечению этого большого количества кортежей из Solr.
2- Я попытался обработать его в партии (и увеличив размер страницы solr до 100). Полученные данные не гарантируются в режиме реального времени, когда кто-то использует мою функцию. Кроме того, чтобы сделать его оптимальным, мне нужно было бы изучить данные об альго, чтобы узнать, что все пользователи «наиболее вероятно» используют мою функцию сегодня. Затем я буду обрабатывать их по приоритету. Пожалуйста, помните, что число пользователей настолько велико, что я не могу запустить эту партию для «всех» пользователей каждый день.
С одной стороны, когда я хочу показывать результаты в режиме реального времени, мне приходится идти на компромисс в отношении производительности (несколько раз ударяя Solr, что немного неосуществимо), а с другой - мой результирующий набор не будет в режиме реального времени если я делаю пакетную обработку, плюс я не могу делать это каждый день, для всех пользователей.
Может кто-то исправить мои, казалось бы, ошибочные подходы?
Инвертирование Solr выполняется на основе содержимого MySQL db.Эффективное получение большого количества кортежей от Solr
ответ
Я думаю, что вам нужно будет с помощью Solr курсоры, которые позволят вам эффективно постраничным через большие ResultSets Solr cursors or deep paging
Основная проблема заключается в том, что для получения «наилучших результатов» мне нужно будет запросить Solr для всех имеющихся данных. Это означает, что я бы ударил Solr в сотни раз, для каждого пользователя. Вычислительно, это очень интенсивно. –
Как я понимаю, ваши пользователи не заинтересованы в 100K результатов. Они хотят только получить результаты топ-10 (или топ-100 или аналогичные низкие числа), когда возраст человека ближе всего к количеству, которое вы поставляете.
Это звучит как случай для запросов функции Solr: https://cwiki.apache.org/confluence/display/solr/Function+Queries. Для примера возраста это было бы как-то вроде sort=abs(sub(37, age)) desc, score desc
, которое вернет людей с возрастом, ближайшим к 37, первым и установит приоритет по счету в случае связей.
- 1. Эффективное обновление большого количества записей данных ядра
- 2. Получение большого количества ошибок переопределения
- 3. Эффективное управление значениями кортежей?
- 4. Получение количества документов в коллекции Solr Cloud
- 5. Получение большого количества сбоев от android youtube player api
- 6. Получение большого количества переменных от одного метода к другому C#
- 7. GAE/P: Эффективное извлечение большого количества предприятий по ключевому
- 8. Эффективное слияние для большого количества огромных файлов csv
- 9. Эффективное сравнение относительно большого количества строк с различной длиной
- 10. Эффективное заполнение большого количества полей в SQL/VBA
- 11. Эффективное извлечение большого количества объектов из хранилища таблиц Azure
- 12. Эффективное получение фотографий пользователей от третьих сторон
- 13. Получение большого количества метаданных из Spotify
- 14. Получение большого количества объектов из хранилища данных
- 15. Ввод состояния Git. получение большого количества информации
- 16. Получение вызова API для большого количества данных
- 17. Настройка и получение большого количества элементов данных
- 18. SOLR Из запроса на заметку для большого количества строк
- 19. GoogleMaps отставание от большого количества маркеров
- 20. Получение количества закладок от вкусной
- 21. Получение количества пользователей от IRC
- 22. Получение диапазона элементов из большого отсортированного списка кортежей
- 23. Измерение количества кортежей массива int
- 24. Эффективное выполнение операций на Erlang кортежей
- 25. Добавление большого количества списков
- 26. Хранение большого количества файлов
- 27. Удаление большого количества линий
- 28. Эффективное получение XML в Elasticsearch
- 29. Обнаружение большого количества повреждений
- 30. Эффективное получение нескольких пакетов
Вы действительно не говорите о [tag: batch-file], не так ли? пожалуйста, исправьте теги соответственно (возможно, вы имели в виду [тег: пакетная обработка], что-то совершенно другое?) ... спасибо! – aschipfl
Ох. Да. Удалили. Благодарим за уведомление. –