0

我正在使用 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]

为什么最后一个查询没有按预期工作?我应该如何编写最后一个查询以仅选择两个定义范围内的项目?

4

1 回答 1

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]

请注意,第二个范围也有字段限定符“价格:”

于 2011-01-06T06:56:43.580 回答