2017-01-23 4 views
0

In unserer Multi-Tenant-Anwendung haben wir mehrere Datenbanken, eine DB für jede Firma. Alle Benutzer einer Firma greifen auf dieselbe Datenbank zu. Ich muss die Solr-Indizierung implementieren, kann ich die Solr-Indizierung mit einem einzigen Kern implementieren und mehrere Shards erstellen, wobei ein Shard für ein Unternehmen verwendet wird. Oder brauche ich mehrere Kerne, wobei jeder Kern für die individuelle Firma erstellt wird. Grundsätzlich lese ich eine Tabelle in DB, um den Dateipfad für jeden Datensatz abzurufen und dann auf das Dateisystem zuzugreifen, um die Datei für die Indizierung zu lesen.Solr Indizierung auf Multi-Schemas (Datenbanken)

+0

Ich werde es tun 1 Kern pro 1 Firma/Datenbank – Mysterion

+0

Danke @ Mysterion, können Sie auch bitte lassen Sie mich wissen, die Vor- und Nachteile, die ich Solr als eine einzelne Instanz oder als Cloud implementieren soll. Ich habe Solr auf SAS-Anwendung, die nicht in einer Cloud ist zu implementieren. –

Antwort

0

Also, lassen Sie uns es in die Antwort setzen. Wie Sie das Problem beschrieben haben, sollten Sie, glaube ich, 1 Kern pro 1 Firma/Datenbank erstellen, damit es für Sie später einfacher wird, die Benutzer eines Unternehmens darauf zu beschränken, nur auf ihre Daten zuzugreifen.

Zweitens, auf SolrCloud vs einzelne Instanz. Viel hängt von der Größe der Daten und der gewünschten Leistung ab. Zitat aus dem Solr Wiki:

Apache Solr beinhaltet die Fähigkeit, einen Cluster von Solr-Server einrichten, die Fehlertoleranz und hohe Verfügbarkeit kombiniert. Genannt SolrCloud, bieten diese Fähigkeiten Indizierung verteilt und Fähigkeiten suchen, und unterstützt die folgenden Funktionen:

  • Zentrale Konfiguration für den gesamten Cluster
  • automatische Lastverteilung und Failover-für Abfragen
  • ZooKeeper Integration für Cluster Koordination und Konfiguration. So

, wenn Sie diese Dinge benötigen, und ich nehme an, Sie sind, werde ich SolrCloud über einzelne Instanz bevorzugen.