我目前正在使用Algolia搜索API,我无法弄清楚如何通过key
value
搜索+查询字符串来限制结果。我的意思是这个。
我有一个属性列表。 每个属性都属于客户。
在应用程序中如果我正在查看客户端信息卡,并且我想搜索客户端拥有的属性,那么将结果限制到客户端然后查找查询字符串会更有意义。
我使用MongoDB作为我的数据库并将客户端ID存储为子文档,如此
//Property Document
{
_id : "randomID"
client : {
_id : "randomID",
name : "ClientName"
}
}
答案 0 :(得分:5)
如果您想将搜索限制为特定的client
,我会选择方面过滤来限制搜索到该客户端。
client._id
中添加attributesForFaceting
facetFilters=client._id:MYCLIENTID
查询参数然后,您还应该看看能够以安全的方式编码此类限制的Secured API keys(因此最终用户无法修补JS代码并解决过滤问题)。
答案 1 :(得分:1)
有一个名为restrictSearchableAttributes
[link]的参数可以在查询时限制搜索某些属性。不过,在您的情况下,我认为您可以通过将每个client info
放入不同的记录(+相关文档的信息)来获得更准确的结果。