Solr 字段存在语法 - * 与 [* TO *]

问题描述 投票:0回答:1

我正在尝试编写一个查询来检查文档中是否存在某个字段。该字段仅在查询时已知,并且可以是不同类型:int、string、bool、多值/单值。 我熟悉执行此操作的两种语法,这两种语法似乎都有效:

  1. my_field:*

  2. my_field:[* TO *]

两者有什么区别?

适用于 Solr v5(及更高版本)

solr
1个回答
0
投票

文档说:

field:[* TO *]
查找任何其值介于有效值之间的文档 该字段类型的 -Infinity 和 +Infinity 值。

对于大多数字段,无界范围查询,

field:[* TO *]
,是 相当于存在查询,
field: *
。但是,对于浮点/双精度 支持 NaN 值的类型,这两个查询的执行方式不同。

  • field:*
    匹配所有现有值,包括 NaN

  • field:[* TO *]
    匹配所有实数值,不包括 NaN

https://solr.apache.org/guide/solr/latest/query-guide/standard-query-parser.html#range-searches

因此,搜索查询的定义方式以及搜索的执行方式可能有所不同,但在大多数情况下,行为是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.