Lucene字符串和数字范围查询

时间:2018-05-31 12:27:39

标签: lucene range-query

我只是好奇为什么Lucene不以标准方式区分字符串和数值...例如['2' TO '6'][2 TO 6]用于范围查询,并且默认情况下将它们全部视为String。

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

1 个答案:

答案 0 :(得分:1)

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

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

在你的情况下使用IntPoint会有意义,因为你想搜索一个数值范围。

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