Предположим, у меня есть 5 таблиц groups
, posts
, groups_posts
, post_comments
и posts_votes
.RDBMS to Elastic Search
groups
таблица имеет поля: user_id
, name
и description
, posts
имеет поля: user_id
и comment
Взаимосвязь между groups
и posts
является MANY_2_MANY поэтому каждая запись может принадлежать многим группам, и каждая группа может содержать 0- * Сообщения. Это то, что делает таблица groups_posts
.
post_comments
таблица имеет поля: text
, post_id
, user_id
, added_at
(дата), total_comments
, total_votes
posts_votes
таблица имеет поля: post_id
, user_id
и vote_at
(дата)
Я хочу моделировать эти структуры в Elastic Search. Основная причина, по которой мне нужен быстрый поиск наиболее популярных сообщений из групп пользователей (пользователь может принадлежать 0- * группе) для определенного пользователя за последние 12 часов на основе суммы комментариев для сообщений и публикации голосов за это количество времени.
Не могли бы вы рассказать мне, как эффективно сопоставлять это с индексами эластичного поиска.
Спасибо за ваш ответ, один дополнительный вопрос - если я не заинтересованы в индексировании данных каждый день, но мне нужно найти сообщения в диапазоне данных - Теперь (дата/время, когда происходит поиск) -12h? Как организовать индекс в этом случае? – alexanoid
И еще одна вещь - я ищу не для сообщений пользователя (отправленных этим пользователем), а для сообщений, которые были отправлены в группы, которые следует за этим пользователем (связанные через таблицу groups_posts с отношением MANY_2_MANY) – alexanoid