在Lucene中搜索价格范围

在Lucene中搜索价格范围,lucene,Lucene,在Lucene,我试图搜索价格范围内的商品。 项目的价格字段后面有一个美元符号,如“$3.99” 我试过了 String querystr = "product: xxxx AND price: $[20.00 - 40.00]" 但这给了我一个例外。那么正确的方法是什么呢?例如,您应该将价格索引为数字字段a 如果将此字段作为字符串或文本进行索引,则范围查询必须基于词典排序。因此,如果您像这里尝试的那样执行范围查询,比如范围查询price:[$20.00到$40.00](侧注:,用于正确的范围

在Lucene,我试图搜索价格范围内的商品。 项目的价格字段后面有一个美元符号,如“$3.99”

我试过了

String querystr = "product: xxxx AND price: $[20.00 - 40.00]"

但这给了我一个例外。那么正确的方法是什么呢?

例如,您应该将价格索引为数字字段a

如果将此字段作为字符串或文本进行索引,则范围查询必须基于词典排序。因此,如果您像这里尝试的那样执行范围查询,比如范围查询
price:[$20.00到$40.00]
(侧注:,用于正确的范围查询语法),那么您将获得所需的price=
$35.00
文档,但您也将获得price=
$350.00
和price=
$3500.00
文档


使用数字字段重新编制索引后,您可以使用进行查询(虽然有些人已经扩展了它,但
QueryParser
不支持数字查询)。

例如,您应该将价格索引为数字字段a

如果将此字段作为字符串或文本进行索引,则范围查询必须基于词典排序。因此,如果您像这里尝试的那样执行范围查询,比如范围查询
price:[$20.00到$40.00]
(侧注:,用于正确的范围查询语法),那么您将获得所需的price=
$35.00
文档,但您也将获得price=
$350.00
和price=
$3500.00
文档

使用数字字段重新编制索引后,可以使用进行查询(虽然有些人已经扩展了它,但
QueryParser
不支持数字查询)