比方说,有汽车经销商网站,经销商显示他的汽车库存待售。每辆车都有基于汽车装饰的不同奖品,如LE,SE,XLE,XSE。例如。如何在Solr中正确查询范围
LE SE XLE XSE
丰田凯美瑞:| 15000 - 20000 | | 25000 - 30000 | | 35000 - 40000 | | 41000 - 50000 |
丰田REV4:| 18000 - 21000 | | 24500 - 27000 | | 28000 - 33000 | | 34000 - 36000 |
这里的每一行都是solr中的一个Document。我保存这个奖项范围内像这样的Solr文档
对于丰田凯美瑞文件:
prizeMin:[15000, 25000, 35000, 41000], prizeMax:[20000, 30000, 40000, 50000]
对于丰田REV文件:
prizeMin:[18000, 24500, 28000, 34000], prizeMax:[21000, 27000, 33000,36000]
所以我奖方面与最小值和最大值,文本框,其中用户进入他的奖品范围。我想要做的是,如果用户输入15000 to 17000
,那么我只想显示丰田凯美瑞(LE修剪在此范围之间)但不显示丰田REV4。如果用户输入26000 to 4000
那么两辆车都会显示(因为凯美瑞是匹配SE,XLE和REV4匹配SE,XLE,XSE)。
这我可以有奖金的范围查询做SOLR像prize:[UserEnterMin TO *]
和prize:[* TO UserEnterMax].
然而,如果用户输入22000 to 23000
话,我不希望显示任何东西,因为这个奖项范围不会下表中的任何奖项范围不同。 。用我的解决方案prize:[UserEnterMin TO *]
和prize:[* TO UserEnterMax]
我无法防止显示这种情况。
所以我的问题是如何确定用户输入差距之间的奖金,以及如何使用solr范围查询来消除该文档的选择。