在我的应用中实施时遇到错误。 这是我的错误控制台:
filters: Unexpected token \'(\' expected \')\' at col 81' }
我是Algolia的新手。任何人都可以帮我解决我的错误? 以下是我在algolia中的内容:
objectID:asdfasfwersa1as54asdf
_id: "asdfasfwersa1as54asdf"
status: "OK"
appId: "app_4s54f"
nameId: "abc_test_(test_app)"
name: "abc test(test app)"
这是我的问题:
FilterSearch= {
filterQuery: function (customQuery, type) {
var filters = "";
if (type == "Website") {
filters = "status:OK";
}
else if (!_.isEmpty(customQuery.nameId)) {
if (filters != "")filters += " AND ";
filters += "(nameId:" + customQuery.nameId.join(" OR nameId:") + ")";
}
return {filters: filters, searchKeyword: customQuery.searchKeyword};
}
};
var searchCriteria=FilterSearch.filterQuery(condition,type);
index.search(searchCriteria.searchKeyword,{facets:facetName,filters:searchCriteria.filters},,Meteor.bindEnvironment(function searchDone(err, content) {
console.log(searchCriteria.filters);
if(err) {
console.error('Algolia returned an error', err);
future.return(err);
}
else {
if(content.facets[facetName] != undefined) {
Names.find({$and: [{_id: {$in: _.keys(content.facets[facetName])}}]})
}
}
}));
由于
答案 0 :(得分:2)
您似乎需要在nameId
值周围使用引号,因为它们包含filters
解析器无法作为值的一部分处理的字符。
filters += "(nameId:\"" + customQuery.nameId.join("\" OR nameId:\"") + "\")";
如果nameId
字段可以包含一些字段,您还需要转义双引号。