In meinem Neo4j/Spring Data Neo4j 4 Projekt Ich habe eine Entitäten: Product
Neo4j Cypher Abfrage für Knoten, basierend auf Eigenschaften zu finden Deltas
jeder Product
hat eine Integer
Eigenschaft - price
Zum Beispiel habe ich eine folgende haben Produkte mit Preisen:
Product1.price = 100
Product2.price = 305
Product3.price = 10000
Product4.price = 1000
Product5.price = 220
Produkte sind nicht miteinander mit Beziehungen verbunden.
Ich brauche basierend auf dem anfänglichen Preiswert (Cypher-Abfrageparameter) einen Satz (Pfad) von Produkten, die sich durch ein maximales Preisdelta voneinander unterscheiden (Cypher-Abfrageparameter).
Zum Beispiel muss ich alle Produkte in Neo4j Datenbank Ausgangspreis finden = 50 und Preisdelta = 150. Als Ausgangs Ich erwarte, dass die folgenden Produkte erhalten:
Product1.price = 100
Product5.price = 220
Product2.price = 305
Die Berechnung wie folgt aussieht:
Startpunkt Preis = 50 so sollte das erste Produkt einen Preis von nicht weniger als 50 und nicht mehr als 200 (50 + 150) haben. Auf dieser Grundlage haben wir ein Produkt aus unserem Katalog mit einem Preis = 100 gefunden. Das zweite Produkt sollte einen Preis von nicht weniger als 100 und nicht mehr als 250 (100 + 150) haben. Dies ist ein Produkt mit einem Preis = 220 .. und der dritte Preis nicht weniger als 220 und nicht mehr 370. Dies ist ein Produkt mit einem Preis = 305
Könnten Sie bitte eine Cypher-Abfrage zeigen, die solche Art von Produkten finden wird.
Können Sie klären, wie Preis und Preis Delta Faktor in Ihre Berechnung einbeziehen? Meine Annahme war, dass Sie mit dem Preis beginnen wollten, und das Delta würde Ihnen einen Boden und eine Decke des Preises geben -/+ das Delta, aber das würde bedeuten, dass die Obergrenze 200 (50 + 150) wäre. Die Preise in Ihrer Ausgabe übersteigen das, also meine Annahme ist falsch, aber ich kann nicht sagen, welche Berechnung Sie verwenden möchten. – InverseFalcon
So etwas? MIT 50 AS initPrice, 150 AS delta MIT \t CASE \t WHEN (initPrice-delta)> 0 THEN (initPrice-delta) ELSE 0 END AS LowRange, (initPrice + delta) AS Hochtonbereich MATCH (n : Produkt) WHERE lowRange
logisima
Das scheint meiner Annahme zu entsprechen, aber die Werte in den Preisen in Ihrer Beispielausgabe passen nicht zu dieser Formel (Preise von 220 und 305 sind beide höher als die berechneter Grenzwert von 200). Wenn das in Ihrer Beispielausgabe nur ein Problem ist, könnten Sie es beheben, um Verwirrung zu vermeiden? – InverseFalcon