Algolia 键值搜索

Algolia Key Value Search

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

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

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

我正在使用 MongoDB 作为我的数据库,并将客户端 ID 存储为子文档,就像这样

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

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

如果您想将搜索限制到特定的 client,我会进行分面过滤以将搜索限制到该客户端。

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

然后,您还应该看看 Secured API keys 能够以安全的方式对此类限制进行编码(因此 end-user 无法修补 JS 代码和 work-around过滤)。