2017-08-11 9 views
0

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:

Antwort

0

Dies kann mit dem gut kennen Möglichkeit der Verwendung von geo-Funktionalität zu modellieren andere Dinge getan werden. Seither wurden Geo-Sachen erweitert und neu strukturiert, und neue Feldtypen sind verfügbar. Sie können dies wahrscheinlich auf verschiedene Arten mit diesen Typen modellieren.