代码之家  ›  专栏  ›  技术社区  ›  Hitesh S

在我的应用程序中执行Algolia搜索时出现错误

  •  1
  • Hitesh S  · 技术社区  · 9 年前

    我在应用程序中执行时出错。 以下是我的错误控制台:

    filters: Unexpected token \'(\' expected \')\' at col 81' }
    

    我是新来的阿尔戈利亚。有人能帮我纠正一下我的错误吗? 以下是我在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])}}]})
            }
    
        }
    }));
    

    谢谢

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jerska    9 年前

    看起来你需要在你的 nameId 值,因为它们包含字符 filters 解析器无法作为值的一部分进行处理。

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

    如果您的 名称Id 字段可以包含一些。