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