Нет результатов поиска при публикации и подписке на одну коллекцию

Я использую Easy-Search пакет и хотел бы искать сообщения (или комментарии к этим сообщениям).

Проблема. Ничего не отображается при вводе запроса. Сообщения об ошибках, отображаемые как на консоли .log, так и на сервере.

Обновление: Я сделал console.log как для публикации, так и для подписки. Таким образом, подписка возвращает console.log в браузере devtools, но публикация ничего не возвращает на серверный терминал.

Шаблон html

<template name="searchPosts">
  {{> esInput id="main" index=indexes placeholder="Search.." }}  

    {{#esEach index="posts"}}
      {{> postItem}}
    {{/esEach}}

    {{#esEach index="comments"}}
      {{> postItem}}
    {{/esEach}}
</template>

Шаблон js - клиент

Template.searchPosts.onCreated(function () {
  var self = this, instance;

  instance = EasySearch.getComponentInstance(
    { id: 'main', index: 'posts'},
    { id: 'main', index: 'comments'}
  );
  instance.on('searchingDone', function (searchingIsDone) {
    searchingIsDone && console.log('I am done!');
  });
  instance.on('currentValue', function (val) {
    console.log('The user searches for ' + val);
  });
  this.subscribe("allDocs");
}); 

Template.searchPosts.helpers({
  indexes : function () {                 
    return ['posts', 'comments']; 
  },
  posts: function () {    
    return Posts.find();
  }
});

Ответ 1

Вы пытались использовать initEasySearch вместо createSearchIndex? Я использовал это, и все выглядит правильно:

News.initEasySearch(['title', 'body'], {
'limit': 3,
'use': 'mongo-db',
'returnFields': ['title', 'category', 'slug', 'coverImage', 'publishedAt']
})

Это приведет к поиску коллекции новостей по заголовку и телу полей, возвращая эти поля ниже. Затем, в html, я просто вызываю {{title}} и остальные поля, потому что returnFields - это то, что easySearch подписывает, чтобы отобразить его на интерфейсе.

ok, вот рабочая демонстрация: https://jsfiddle.net/nke3qbxr/