我有一个带有以下JSON键的索引,并且可以具有两个值:ApprovalFL: true
或ApprovalFL: null
我希望搜索结果仅显示具有ApprovalFL: true
的结果,这意味着它们已被批准在网站上显示。
我尝试研究Algolia Facet方法(https://www.algolia.com/doc/guides/searching/faceting/#search-for-facet-values),但是老实说,我不太确定将其放在代码中的位置(开发人员最初设置Algolia……我仍在学习),这里是我相关的javascript:
这是我的代码的一部分,其余的可以在上面的链接中找到:
var searchSong = instantsearch
({
appId: "---",
apiKey: "---",
indexName: "Song",
searchFunction: function (helper) {
var query = searchArtist.helper.state.query;
helper.state.index = "Song";
helper.state.hitsPerPage = 30;
helper.setQuery(query);
helper.search();
},
searchParameters:
{
hitsPerPage: 30
}
});
我已经在Algolia仪表板页面中将密钥添加到“ attributesforFaceting”。
如果您想观看现场示例,请在https://jsfiddle.net/vpnvt9vv/1上输入字母“ a”,您会看到来自歌手“ Turbo”的两个结果,当我只想要歌曲时,它们的ApprovalFL为null显示的ApprovalFL为true
让我知道是否需要更多信息,谢谢!
最佳答案
您可以使用facetFilters
并将其设置为["ApprovalFL:true"]
FACET FILTERS
从您的代码结构中,您可以将其添加到searchFunction
或searchParameters
中,如下所示。理想情况下,您希望在代码中添加一次搜索过滤器,否则由于在许多地方都进行了声明,因此代码可能变得难以理解。
var searchSong = instantsearch ({
appId: "---",
apiKey: "---",
indexName: "Song",
searchFunction: function (helper) {
.
.
.
helper.state.facetFilters = ["ApprovalFL:true"];
.
.
.
},
searchParameters: {
hitsPerPage: 30,
facetFilters: ["ApprovalFL:true"]
}
});
关于javascript - 正确使用切面作为Algolia搜索结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47707802/