1

我只是好奇为什么 Lucene 不以标准方式区分字符串和数值。例如['2' TO '6'][2 TO 6]对于范围查询,默认情况下将所有这些都视为字符串。

是否有任何特别的理由将这两种情况都视为字符串值?

4

1 回答 1

1

您的范围查询示例基于 lucene 查询语法。在此定义中,未定义执行此查询的字段类型。

基本上,如果您将此查询应用于 TextField,则评估将基于字符串。如果将此应用于 IntPoint,则该数字将被解释为整数。对此负责的是 QueryParser,您可以在其中添加查询和要搜索的字段。

在您的情况下,使用 IntPoint 是有意义的,因为您想搜索数字范围。

有关查询解析器的更多详细信息,请参阅QueryParser Javadoc

于 2018-06-01T08:09:57.573 回答