В настоящее время я использую EasySearch для поиска решения для своего приложения, и у меня есть вопрос о публикации/подписке результатов поиска.
По сути, поиск работает так, что пользователи вводят поиск и возвращают несколько сообщений (у меня есть коллекции под названием «Сообщения», где я реализовал EasySearch).
Я предположил, что EasySearch, вероятно, автоматически опубликует или подпишется в зависимости от результатов поисковых запросов, поэтому я не думаю, что мне следует беспокоиться об отправке слишком большого количества данных клиенту? (Поправьте, если ошибаюсь).
Однако проблема, с которой я сталкиваюсь на данный момент, заключается в том, что каждое сообщение связано с изображением из коллекции под названием «Изображения», где моя публикация/подписка просто публикует все и подписывает все с клиента и сервера и вообще не связано с поиском.
Мне просто интересно, означает ли это, что я не смогу масштабироваться, так как я буду публиковать все изображения клиенту независимо от поисков?
Коллекция постов
Posts = new Mongo.Collection('posts');
Posts.initEasySearch(['firstName', 'lastName', 'degreeStudy', 'tags'], {
'limit' : 20,
'use' : 'mongo-db'
});
Posts.allow({
update: function(userId, post) { return ownsDocument(userId, post); },
remove: function(userId, post) { return ownsDocument(userId, post); },
});
Коллекция изображений
Images = new FS.Collection("images", {
stores: [new FS.Store.GridFS("images")]
});
Шаблон страницы для отображения результатов поиска
<template name="postPage">
<div class="container">
{{#ifEsHasNoResults index="posts"}}
<div class="jumbotron no-results"> <h1>No results found!</h1></div>
{{/ifEsHasNoResults}}
{{#ifEsIsSearching index="posts"}}
{{>loading}}
{{else}}
{{#esEach index="posts"}}
{{> postItem}}
{{/esEach}}
{{> esLoadMoreButton index="posts"}}
{{/ifEsIsSearching}}
</div>
</template>
Короче говоря, как я могу сделать свой паб и подколлекцию коллекций изображений связанными с результатом easySearch?