2016-08-24 68 views
2

我在我的網站實施algolia搜索,我想獲得一組數據匹配任何id的我發送到搜索,所以我需要知道我怎麼能發送多個參數搜索,這樣我就可以送一套IDS的,是這樣的:發送多個條款到algolia搜索

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

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

這不是現在的工作,有什麼想法?或者甚至如何使用另一個algolia feautre(例如過濾)來實現我的目標?

回答

8

如果您嘗試通過objectID(您可以在創建時手動設置以匹配數據庫id s)檢索對象,則可以簡單地使用getObjects method。從文檔

精華:如果你想列出屬於一個的所有記錄

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

您還可以獲取一組對象與一個特定的ID組,你可以use a facet將包含此ID和過濾器。

裏面的記錄:

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

內,您的索引設置:

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

在查詢時:

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

它非常完美,非常感謝 –