我正在使用Solr 1.4并在schema.xml中定义了以下字段:
<field name="SALE_PRICE" type="sint" indexed="true" stored="true" />
通过此查询,我得到了定义范围内的预期项目(25000到30000)。
http://localhost:8983/solr/select/?q=*%3A*&facet=on&facet.field={!ex=SALE_PRICE}SALE_PRICE&fq={!tag=SALE_PRICE}SALE_PRICE:[25000+TO+30000]
通过此查询,我得到了定义范围内的预期项目(85000到90000)。
http://localhost:8983/solr/select/?q=*%3A*&facet=on&facet.field={!ex=SALE_PRICE}SALE_PRICE&fq={!tag=SALE_PRICE}SALE_PRICE:[85000+TO+90000]
使用此查询我只期望两个范围内的项目,但是,我也得到不在两个范围内的项目。例如,我收到SALE_PRICE为70000的商品和SALE_PRICE为119000的商品。
http://localhost:8983/solr/select/?q=*%3A*&facet=on&facet.field={!ex=SALE_PRICE}SALE_PRICE&fq={!tag=SALE_PRICE}SALE_PRICE:[25000+TO+30000]+OR+[85000+TO+90000]
为什么最后一个查询无法正常工作?如何将最后一个查询写入仅选择两个定义范围内的项目?
答案 0 :(得分:2)
我只是在默认架构上尝试了这个并且它有效:
http://localhost:8983/solr/select/?q=*%3A*&facet.field={!ex=p1}price&facet=on&fq={!tag=p1}price:[0%20TO%2010]%20OR%20price:[200%20TO%20500]
请注意,第二个范围也有字段限定符“price:”