我只是好奇为什么 Lucene 不以标准方式区分字符串和数值。例如['2' TO '6']
,[2 TO 6]
对于范围查询,默认情况下将所有这些都视为字符串。
是否有任何特别的理由将这两种情况都视为字符串值?
我只是好奇为什么 Lucene 不以标准方式区分字符串和数值。例如['2' TO '6']
,[2 TO 6]
对于范围查询,默认情况下将所有这些都视为字符串。
是否有任何特别的理由将这两种情况都视为字符串值?
您的范围查询示例基于 lucene 查询语法。在此定义中,未定义执行此查询的字段类型。
基本上,如果您将此查询应用于 TextField,则评估将基于字符串。如果将此应用于 IntPoint,则该数字将被解释为整数。对此负责的是 QueryParser,您可以在其中添加查询和要搜索的字段。
在您的情况下,使用 IntPoint 是有意义的,因为您想搜索数字范围。
有关查询解析器的更多详细信息,请参阅QueryParser Javadoc