我正在编写一个Web应用程序,用户可以在其中创建通过使用标记来表征的帖子。 搜索帖子时,用户可以添加标签来过滤搜索。
要完成上述操作,我正在使用https://github.com/matteodem/meteor-easy-search
我使用的代码类似于http://matteodem.github.io/meteor-easy-search/docs/recipes/
中的代码添加新标记时会触发事件并运行以下代码
var instance = EasySearch.getComponentInstance(
{ index : 'suggestions' }
);
EasySearch.changeProperty('suggestions', 'Tags', x);
instance.triggerSearch();
在另一个文件中,我写了这段代码:
Suggestions.initEasySearch('name');
EasySearch.createSearchIndex('name', {
'field' : ['name'],
'collection' : Suggestions,
'props' : {
'tags' : []
},
'query' : function (searchString) {
// Default query that will be used for searching
var query = EasySearch.getSearcher(this.use).defaultQuery(this, searchString);
// filter for categories if set
if (this.props.tags.length > 0) {
query.tags = {field: {$in: this.props.tags}}
}
return query;
}
});
代码根本无效。我没有收到任何错误,但搜索结果与添加上面显示的代码之前完全相同。
此外,了解帖子(建议)的内容可能很重要。
{
name: title,
score: 0,
description: description,
tags : tags,
createdBy: Meteor.userId(),
createdAt: new Date(),
username: Meteor.user().username
}