2016-08-24 2 views
2

私は自分のサイトでalgolia検索を実装していますが、IDに一致するデータセットを取得したいので、検索に送信するので、複数のデータを送信する方法を知る必要があります検索にパラメータので、私は、このような何かIDのセットを送信することができます。これは、任意のアイデアを持って、今働いていないalgoliaに複数の用語を送信して検索する

let client = algoliasearch(APP_ID, API_KEY), 
    index = client.initIndex(INDEX_NAME); 

let term=["3223212","2423434"]; 
    index.search(term, callback) 

を?それとも、例えば、フィルタリングのような別の藻類を使用して私の目標を達成することができますか?

答えて

8

オブジェクトをobjectID(データベースのidに一致するように手動で作成することができます)で取得しようとしている場合は、単にgetObjects methodを使用できます。ドキュメントから

エキス:あなたはに属しているすべてのレコードを一覧表示しようとしている場合

index.getObjects(['myObj1', 'myObj2'], function(err, content) { 
    console.log(content); 
}); 

:また、オブジェクトのセットを取得することができ

特定のIDを持つグループには、このIDを含むフィルタをuse a facetに含めることができます。問合せ時

{ 
    attributesForFaceting: [ 
    'onlyFilter(group_id)' 
    ] 
} 

:あなたのインデックスの設定インサイド

{ 
    "group_id": "3223212", 
    // or 
    "group_ids": ["3223212", "2423434"] 
} 

:あなたの記録インサイド

答えを

let ids = ["3223212", "2423434"]; 
let filters = ids.map(id => `group_id:${id}`).join(' OR '); 
index.search('', { filters: filters }, callback); 
+0

おかげで、私はどれだけ、もう一つ質問があります私は 'attributesForFaceting'設定を設定できますか?私はドキュメントを読んでいるし、それはjavascriptを使ってそれを行うことはできないようだ。それはダッシュボードの中で行うことは可能ですか? –

+1

実際にDahsboard内のインデックスの表示タブに直接設定することもできます。そこに 'onlyFilter'を使用することもできます。答えに書かれているとおりに入力する必要があります。 – Jerska

+0

それは完璧に働いた、ありがとう –

関連する問題