当前位置: 首页 > 知识库问答 >
问题:

Lucene字符串和数字范围查询

丁雅惠
2023-03-14

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

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

共有1个答案

唐烨煜
2023-03-14

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

基本上,如果将此查询应用于文本字段,则计算将基于字符串。如果将其应用于一个整数点,则该数字将被解释为整数。负责这项工作的是QueryParser,您可以在其中添加查询和要搜索的字段。

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

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

 类似资料:
  • 版本字符串有一个支持java类(版本),它实现了Comparable。 我的分析器是一个分析器包装器,它是一个小写和空格分析器,类似于内置的分析器。我使用经典的查询解析器进行搜索。在确切的条件下搜索工作良好。 我想做的是: 我试图在索引之前将版本字符串转换为int,但查询输入需要以某种方式转换,以便在搜索之前将版本字符串转换为int。 看起来我必须为version字段实现一个自定义分析器,但是我在

  • 我只是在玩一些代码,我似乎不明白我哪里出错了。 我有一个“数字”字段,存储01-20之间的数字,后跟一个字母。我已经创建了一个局部变量,将前2个数字存储为字符串,但如果范围在01-20之间,我似乎无法使范围返回真。注意00不是有效的数字。 有什么想法吗?

  • 问题内容: 因此,我正在编写一个简单的程序来输入字符串并计算总数。的米 所以,这是我的代码 where 和str是我接受过的字符串,但是此错误不断出现 这是什么错误以及如何将其删除? 问题答案: 字符串,有效索引从0到n-1; 更改 至

  • 问题内容: 我猜我正在收到此错误,因为字符串正在尝试对值进行子字符串化。但是那部分不能消除这个问题吗? 这是Java代码段: 我收到此错误: 问题答案: 我猜我正在收到此错误,因为字符串试图将Null值作为子字符串。但是“ .length()> 0”部分不能消除该问题吗? 不,在itemdescription为null时调用itemdescription.length()不会生成StringInd

  • 问题内容: 我正在尝试将范围查询与elasticsearch一起使用 但是弹性返回没有结果。我发现系统存在字符串包含或问题 这是该字段的映射: 问题答案:

  • 我在用Lucene。Net版本3.0。3. 下面是Lucene查询转换为字符串,带有字段键、值和容差。 我想把字符串值传递给Api,在那里我需要转换回Lucene查询。 我使用字段FirstName和LastName尝试了QueryParser和MultifieldQueryparser,但在传递时没有返回确切的查询。