2016-06-03 10 views
3

Neu bei Algolia, und mit ein wenig Mühe den Unterschied (vorgeschlagene Verwendung) von Tags vs. Facetten zu entschlüsseln - sie scheinen funktional gleichwertig zu sein.Algolia Tags vs Facetten Use Cases

Die Algolia-Dokumentation gibt ein Beispiel für ein Tag mit einer Benutzer-ID - z. "user_1234", die dann zum Filtern verwendet werden könnte.

Doch das scheint funktional äquivalent zu einfach dies in Ihrem JSON mit:

"user": "1234"

und dann "user" als facettiertes Feld zu deklarieren.

Was ist der Unterschied/Zweck? Warum haben beide Tags und Facetten?

Antwort

3

Sie sind in der Tat richtig, dass beide Ihnen die gleiche Filterfunktionalität geben können.
Der Hauptunterschied kommt von Facettenzählungen, die zur Indexierungszeit berechnet werden, was Zeit benötigt.

Deshalb sollten Sie jetzt in Ihrem attributesForFaceting Einstellen eines onlyFilter Modifikator zu Ihrem Attribut, wie so hinzufügen:

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

den Motor Dies wird sagen, dass das user Attribut sollte als Tag oder Tag-Liste betrachtet werden (Diese Syntax ist derzeit nicht dokumentiert, sollte aber bald sein).

Die gleiche Logik kann auf numerische Attribute angewendet werden. Standardmäßig erstellt die Algolia-Engine Datenstrukturen für alle indexierten Nummern, um schnell auf Abfragen wie nb_views>10000 zu antworten.
Dies ist auch rechenintensiv, weshalb Sie den equalOnly Modifizierer in numericAttributesToIndex hinzufügen können.