2016-08-10 37 views
1

在我的應用程序中執行時遇到錯誤。 這是我的錯誤控制檯:在我的應用程序中執行時獲取Algolia搜索錯誤

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

你可以分享你正在做的查詢嗎?它看起來像你正在傳遞錯誤格式的'過濾器'查詢參數。 – redox

+0

@redox我已更新。 – Meteor

回答

2

好像你需要用你的周圍值nameId引號,因爲它們含有字符filters解析器無法作爲值的一部分進行處理。

filters += "(nameId:\"" + customQuery.nameId.join("\" OR nameId:\"") + "\")"; 

您還需要逃脫雙引號,如果你的nameId字段可以包含一些。

相關問題