Sagen wir, es gibt Autohändler Website, wo Händler sein Auto Inventar zum Verkauf zeigt. Jedes Auto hat verschiedene Preisbereich basierend auf Auto Trim wie LE, SE, XLE, XSE. Beispielsweise.Wie man Range Abfrage richtig in Solr macht
LE SE XLE XSE
Toyota Camry: | 15000 - 20000 | | 25000 - 30000 | | 35000 - 40000 | | 41000 - 50000 |
Toyota REV4: | 18000 - 21000 | | 24500 - 27000 | | 28000 - 33000 | | 34000 - 36000 |
Hier ist jede Zeile ein Dokument in solr. Ich speichere diesen Preisbereich wie dies in solr Dokument
Für Toyota Camry Dokument:
prizeMin:[15000, 25000, 35000, 41000], prizeMax:[20000, 30000, 40000, 50000]
Für Toyota REV Dokument:
prizeMin:[18000, 24500, 28000, 34000], prizeMax:[21000, 27000, 33000,36000]
So habe ich Preis Facette mit Min- und Max-Textbox, wo Benutzer gib seine Preisspanne ein. Was ich tun möchte, ist, wenn Benutzer 15000 to 17000
eingeben, dann möchte ich nur Toyota Camry zeigen (LE trim fallen zwischen diesem Bereich), aber nicht Toyota REV4. Wenn der Benutzer 26000 to 4000
eingibt, werden beide Autos angezeigt (weil Camry für SE, XLE und für REV4 für SE, XLE, XSE steht).
Das habe ich, indem Preisbereich Abfrage tun können, wie prize:[UserEnterMin TO *]
UND prize:[* TO UserEnterMax].
jedoch auf Solr, wenn Benutzer 22000 to 23000
tritt dann in Ich will nichts angezeigt werden, da dieser Preis Bereich unter keinen Gewinn Bereich fällt Tisch . Mit meiner Lösung prize:[UserEnterMin TO *]
UND prize:[* TO UserEnterMax]
kann ich dieses Szenario nicht von der Anzeige verhindern.
Also meine Frage ist, wie zu identifizieren, dass Benutzer Preis eingeben, die zwischen Lücken fallen und wie kann ich die Auswahl dieses Dokuments mit solr Bereich Abfrage zu beseitigen. see here
Diese Verbindung ist ziemlich alt: