результат поиска с вложенностью таблиц
есть две таблицы:FilmEntity и ActorEntity.
ActorEntity связана с FilmEntity с отношением многие к одному, так как у одного фильма может быть много актеров.
при запросе фильма в базе через ORM на выходе получаю вот такие данные:
{
id: 123, // id фильма
actors: [ // массив актеров, которые играют в этом фильме
{
id: 23423423,
id: 4234234234
}
]
}
здесь всё отлично и красиво.
далее я успешно проиндексировал свою базу через Sphinx, и при поиске одного фильма получаю ответ из двух записей:
[
{
film_id: 123,
actor_id: 23423423
},
{
film_id: 123,
actor_id: 4234234234
}
]
Вопрос: как мне сделать, чтобы Sphinx отдавал такую красивую вложенность в одном объекте, как и ORM?
Буду рад любому комментарию, совету, статье на эту тему.
Ответы (1 шт):
Автор решения: Manticore Search
→ Ссылка
- индексировать так, чтобы actor_id был MVA или JSON атрибутом, а один документ - один фильм, а не пара фильм-актёр
- использовать группировку по film_id и GROUP_CONCAT(), правда тогда id актёров будут строкой и нужно будет в приложении разделить на элементы