2017-04-14 4 views
1

Angenommen, ich habe 5 Länder und es gibt 10 Städte in jedem Land und dann wieder gibt es 20 verschiedene Orte in jeder Stadt. Es gibt 3 Tabellen in RDBMS und die Sache ist, ich möchte die Suche mit Algolia Instant Search js implementieren. Kann mir bitte jemand sagen, wie kann ich Suche wie erreichen, wenn ich suche oder ein Land zu filtern und Suchergebnisse die Orte eines bestimmten Landes anzeigen. Welche Tabellen müssen in Algolien indiziert werden?wie nach fremdschlüssel in algolia instant suchen?

Antwort

0

Erstellen Sie einen Algolia-Datensatz für jeden Ort. Innerhalb dieses Dokuments sollten Sie die Attribute der Stadt und des Landes angeben, nach denen Sie suchen möchten (city.name, country.name usw.).

+0

Sie wollen sagen, dass ich nur einen Index haben werde, d. H. Orte, und ich muss country.name und city.name in die Tabelle places einfügen, während Sie Daten von Orten einfügen. Können Sie mich bitte korrigieren Wenn ich falsch liege? – msbomrel

+0

Richtig, du hast es! In gewissem Sinne verflacht/denormalisiert man sein Datenmodell, so dass man in jedem Datensatz den vollständigen Ort, die Stadt und das Land hat. Dies vermeidet, dass Joins durchgeführt werden müssen, und macht den Prozess zur Abfragezeit sehr einfach. Für Ihre durchsuchbaren Attribute sollten Sie den Namen (oder place.name, wenn Sie das Platzierungsobjekt verschachteln), city.name und country.name, wahrscheinlich in dieser Reihenfolge, haben. –