Unsere Firma hat mehrere Produkte und mehrere Teams. Ein Team ist für die Suche zuständig und standardisiert Elasticsearch als Nosql-Datenbank, um alle ihre Daten zu speichern. Später soll Neo4j verwendet werden, um die Suche mit Beziehungsdaten zu ergänzen.Was sind die Fallstricke für die Verwendung von ElasticSearch als Nosql-Datenbank für eine soziale Anwendung im Vergleich zu einer Diagrammdatenbank?
Mein Team ist verantwortlich für die Produktseite einer sozialen App (Menschen haben Freunde und arbeiten für Unternehmen und sind Kollegen mit allen, die in ihren Unternehmen arbeiten usw.). Wir betrachten Graph dbs als Lösung (nachdem wir das brennende Schiff verlassen haben, das sind n^2 Beziehungen in rdbms), speziell neo4j (die Cypher-Abfragesprache ist eine schöne Sache).
Eine Teilmenge unserer Daten ist ähnlich den Daten, die vom Suchteam verwendet werden, und wir müssen sicherstellen, dass die Suche ihre Daten und unsere Daten gleichzeitig durchsuchen kann. Das Search-Team drängt uns, ElasticSearch für unsere db statt für Neo4j oder irgendeine Graph db zu standardisieren. Ich glaube, das ist der Standardisierung und Konsistenz zuliebe.
Wir kommen offensichtlich von sehr verschiedenen Orten hier, suchen Sie Bedenken gegen Produkt Bedenken. Er behauptet, dass ElasticSearch alle unsere Anwendungsfälle abdecken kann, einschließlich graphischer Abfragen, um Vorschläge zu finden. Obwohl das wahrscheinlich wahr ist, möchte ich wirklich bei Neo4j bleiben und ein ElasticSearch-Plugin verwenden, um es in die Suche zu integrieren.
Gibt es in dieser Situation größere Schwierigkeiten, ElasticSearch über Neo4j für ein Produkt db (oder umgekehrt) zu wählen? Irgendwelche Richtlinien oder Anekdoten von denen, die in ähnlichen Situationen waren?
[Elasticsearch bietet Graph Funktionalität] (https://www.elastic.co/products/graph). Die Frage hängt wirklich davon ab, wie Sie es verwenden möchten und ob Sie einen Datenspeicher mit einigen Grafikfunktionen gegenüber einem Diagrammdatenspeicher mit sehr wenigen Suchfunktionen wünschen. – pickypg
@pickypg Korrigieren Sie mich, wenn ich falsch liege, aber das sieht aus, als würde es hauptsächlich dazu verwendet, Ihre Daten grafisch zu durchsuchen und zu visualisieren und interessante relationale Eigenschaften der Daten zu erkunden. Beide tollen Anwendungsfälle, also sollte ich klarstellen, dass ich eher daran interessiert bin, die Daten und Beziehungen einfach zu modellieren und graphenorientiert abzufragen (schmerzlos mit einem Graph db). [Es gibt Lösungen zur Integration beider] (https://neo4j.com/developer/elastic-search/), die ich für das Beste aus beiden Welten favorisieren würde. – InverseFalcon
Es gibt einen ['_graph' API-Endpunkt, der damit einhergeht] (https://www.elastic.co/guide/en/graph/current/graph-api-rest.html). Ich weiß ehrlich nicht, wie es für Ihre Interessen vergleicht. – pickypg