Согласен, что "новостная лента" и "новостная лента для социальных сетей" разные вещи, но к моей проблеме не подходит ни то, ни другое. Скорее "новостная лента экосистемы", в которой действительно сильный винегрет.
FanatPHP, не нужно лишних эмоций. Я не считаю, что мне все должны. Я рассчитывал не на точное решения, а просто на совет в каком направлении двигаться. Заголовок верный. Вот статья, о моей проблеме 8-летней давности. https://habr.com/ru/company/dataart/blog/242593/
Myclass, Не зная всех обстоятельств не нужно давать своих характеристик. Не думал, что здесь такая сложность посоветовать направление для дальнейшего углубления в вопрос.
FanatPHP, Я вас не просил давать характеристики моему вопросу! Никакой конкретики нет, так как она составляет коммерческую тайну. Это слабо формализованный вопрос, меня устроят слабо формализованные ответы
Спасибо за совет. Ваш пример действительно работает за приемлемое время. Увы, я не могу раскрывать детали предметной области. Теперь мне нужно разобраться, чем ваш пример отличается от моей реализации
Спасибо, интересная статья. Но проблема в том, что от основной базы на PostgreSql невозможно отказаться и перейти на другую. Как использовать несколько баз данных и результаты запроса к одной базе быстро перенести в запрос к другой - я не знаю
ElasticSearch отлично подходит для поиска с условиями, но задача другая. Необходимо получить первые 10 записей, хранящихся в реляционной базе, упорядоченные некоторым способом и удовлетворяющих набору условий, например длина от 0 до 10, ширина от 0 до 20 и высота от 0 до 10. В постановке вопроса я показал минусы всех подходов для решения этой задачи. В частности, эту задачу также можно решить с помощью ElasticSearch. Но результаты отбора по условиям в ElasticSearch нужно использовать в запросе к реляционной базе. Я не знаю приема, позволяющих без существенных временных задержек перенести десятки тысяч идентификаторов из ElasticSearch в PostgreSQL.
Не стоит искать решение задачи в предметной области
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.