2016-08-10 16 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

実行しているクエリを共有できますか?間違ってフォーマットされた 'filters'クエリパラメータを渡しているようです。 – redox

+0

@redox私は更新しました。 – Meteor

答えて

2

それはあなたが彼らが含まれているため、あなたのnameId値の前後に引用符を使用する必要がありますように思えます文字はfiltersパーサーは値の一部として扱うことができません。

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

また、あなたのnameIdフィールドは、いくつかを含めることができる場合は、二重引用符をエスケープする必要があります。

関連する問題