#вопрос
Есть задачка: находимся на странице поста и нужно ниже вывести список постов, которые имеют максимальное совпадение по тегам с текущим постом, при этом с сортировкой от наибольшего совпадения по тегам к меньшему. Запара в том, какая нагрузка будет на хостинг при 10000 постах, если у каждого поста от 20 до 100 тегов.
Есть вариант А: провести единовременное сравнение всех постов по совпадающим тегам, узнать процент совпадения и положить его в БД, скажем, в мета-поле. Например, возьмем post_1 вытащим все его теги, узнаем количество совпадающих с тегами каждого следующего поста вплоть до post_10000. Но это же оч. много обращений к БД, потому что terms надо запрашивать каждый раз к конкретному посту. Потом еще записать данные для каждого поста.
Есть вариант Б: ничего не придумывать особенного и выбирать циклом из БД посты по условию "tag__and" (то есть по полному соответствию) через WP_Query, с каждым циклом исключая один тег, чтобы сортировка была по убыванию совпадений. Тут можно ограничить, допустим 500 записями.
Да, сложновато объяснить.
Вопрос: какой вариант лучше, при условии подключения внешнего кэширования типа Redis, использования встроенного кэширования, может быть есть еще варианты, а может быть для WordPress это семечки?