2016-04-22 15 views
4

Ich benutze Laravel PHP um eine Web App zu erstellen und ich benutze Algolia als Suchdienst. Jedoch kann ich Algolia nicht zurückgeben Ergebnisse basierend auf Pivot-Tabellen und ausländische ID in anderen Tabellen.So ist meine Frage ist wahr, dass Algolia im Moment nicht unterstützt Pivot und relationalen Tabellen? Oder bin ich nicht richtig und es ist total mein Fehler? Vielen Dank im VorausUnterstützt Algolia Pivot- und relationale Tabellen?

Antwort

6

Suchmaschinen sind zunächst nicht entworfen, um Beziehungen zu behandeln: es ist etwas Datenbanken sind gut, aber es hat eine große Kosten bei der Abfrage Zeit.

Aus Leistungsgründen unterstützt die Algolia-Engine solche Beziehungen nicht. Der beste Weg also ist es, Ihre Daten zu denormalisieren, bevor Sie sie an Algolia weiterreichen.

Beispiel:

Sie haben eine users(id, name) & eine posts(id, author_id, content) SQL-Tabelle und Sie wollen in die Pfosten suchen, während sowohl die Post Inhalt anzuzeigen und den Namen des Autors.

Sie sollten einen JOIN auf Ihrer Seite tun, um den Namen des Autors aufzulösen und ein einzelnes Objekt { "objectID": 42, "content": "...", "author_name": "<fetched from users table>" } an Algolia zu senden.