3

現在、Algolia 検索 API を使用していますが、key value+ クエリ文字列を検索して結果を制限する方法がわかりません。これで私はこれを意味します。

私はプロパティのリストを持っています。各プロパティはクライアントに属します。

アプリケーション内 クライアント情報カードを見て、クライアントが所有するプロパティを検索したい場合、結果をクライアントに限定してクエリ文字列を探す方が理にかなっています。

私はMongoDBをDBとして使用しており、クライアントIDをサブドキュメントとして保存しています

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

2 に答える 2

5

検索を特定の に制限したい場合はclient、ファセット フィルタリングを使用して、検索をそのクライアントのみに制限します。

  • インデックス設定にを追加client._idしますattributesForFaceting
  • facetFilters=client._id:MYCLIENTIDクエリ パラメータを使用して検索をフィルタリングする

次に、そのような制限を安全な方法でエンコードできるSecured API キーも確認する必要があります(したがって、エンドユーザーは JS コードにパッチを適用してフィルタリングを回避できません)。

于 2015-12-30T09:54:03.013 に答える
1

クエリ時に、一部の属性のみを検索するように制限するrestrictSearchableAttributes[link]というパラメーターがあります。client infoそれにもかかわらず、あなたの場合、それぞれを別のレコード (+ 関連ドキュメントの情報) に入れることで、より正確な結果が得られると思います。

于 2015-12-30T09:54:02.563 に答える