Algolia Key Value Search

时间:2015-12-29 22:11:07

标签: node.js meteor algolia

我目前正在使用Algolia搜索API,我无法弄清楚如何通过key value搜索+查询字符串来限制结果。我的意思是这个。

我有一个属性列表。 每个属性都属于客户。

在应用程序中如果我正在查看客户端信息卡,并且我想搜索客户端拥有的属性,那么将结果限制到客户端然后查找查询字符串会更有意义。

我使用MongoDB作为我的数据库并将客户端ID存储为子文档,如此

//Property Document
{
 _id : "randomID"
 client : {
  _id : "randomID",
  name : "ClientName"
 }
}

2 个答案:

答案 0 :(得分:5)

如果您想将搜索限制为特定的client,我会选择方面过滤来限制搜索到该客户端。

  • 在索引设置的client._id中添加attributesForFaceting
  • 使用facetFilters=client._id:MYCLIENTID查询参数
  • 过滤搜索

然后,您还应该看看能够以安全的方式编码此类限制的Secured API keys(因此最终用户无法修补JS代码并解决过滤问题)。

答案 1 :(得分:1)

有一个名为restrictSearchableAttributes [link]的参数可以在查询时限制搜索某些属性。不过,在您的情况下,我认为您可以通过将每个client info放入不同的记录(+相关文档的信息)来获得更准确的结果。