3

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

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

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

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

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

2 回答 2

5

如果您想将搜索限制为特定的client,我会进行方面过滤以将搜索限制为仅针对该客户端。

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

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

于 2015-12-30T09:54:03.013 回答
1

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

于 2015-12-30T09:54:02.563 回答