如何编写一个solr查询来检索所有数字字段值小于指定的记录?

2022-09-02 05:36:28

让我们假设我们有一组带有名称和价格的mp3播放器。

如何编写正确的solr查询来查找具有特定名称且价格低于100 $的所有商品?

q = "(name:(ipod) AND price ???? 100.0)"


答案 1

我不认为查询分析器支持运算符。您必须显式定义 RangeQuery。然后,您可以使用布尔查询将名称查询附加到该查询<

更新:显然,我错了。事实上,Solr的查询解析器比Lucene的更智能。这是你的答案:https://lucene.apache.org/solr/guide/8_0/the-standard-query-parser.html#differences-between-lucene-s-classic-query-parser-and-solr-s-standard-query-parser

field:[* TO 100] 查找所有小于或等于 100 的字段值


答案 2

另请注意,在性能方面,您应该为此使用过滤器查询:

&q=name:ipod&fq=price:[* TO 100]