2016-04-28 69 views
2

我試圖使用Algolia來擴充我的Firebase支持的應用程序。由於firebase的特性,許多嵌套對象的鍵值都是唯一的,因爲數據已經變平,而且鍵值表示數據庫中其他位於索引中的其他有趣數據,這些數據不在索引上傳到Algolia中。使用具有唯一鍵的嵌套對象的Algolia

像這樣的對象的一個​​例子是:

{ 
"foo12345": { 
    "3342523": { 
     "Body": "Some Text", 
     "Author": "Bob", 
     "Last_Updated": 1458071169649 
    } 
    } 
} 

有沒有一種方法來設置嵌套的唯一ID對象中的數據的方面?除了方面之外,還有什麼方法可以過濾Algolia中按鍵的具體價值嗎?

回答

1

我不認爲你可以像那樣使用它。您需要有一個共同的路徑來訪問您想要進行搜索或使用您的方面的屬性。

如果你的情況很好理解(在同一個firebase對象中的幾個'keys'),你可以嘗試爲每個「key」創建一個記錄並添加一個屬性來引用你的firebase ID(這樣你就可以組合他們稍後再)

所以,你的記錄應該看起來像:

{ "objectID": "3342523", 
    "firebaseKey": "foo12345", 
    "Body": "Some Text", 
    "Author": "Bob", 
    "Last_Updated": 1458071169649 
    } 

我建議這個資源來幫助你algolia https://www.algolia.com/doc/tutorials/firebase-algolia

+0

謝謝,我讀了這是我如何集成在第一個地方,它吸我不能有「通配符」方面雖然 – Kyle

+0

嘿凱爾,任何機會接受在這個線程的答案? ^^ – Shipow

2

連接你的火力點數據不,你不能做一個嵌套的屬性刻面無知道它的家長。您需要重新格式化您的記錄。

你可以做的是相反的,面對屬性的每一個孩子:

{ 
    "objectID": 42, 
    "specs": { 
    "whatever1": "value1", 
    "whatever2": "value2" 
    } 
} 

添加specsattributesForFaceting將產生具有兩個方面:

  • specs.whatever1
  • specs.whatever2
相關問題