弹性搜索:如何查询字符串字段的范围(数字)

时间:2018-08-16 11:12:16

标签: elasticsearch range kibana

  包含数字的

ive字符串字段。

     

例如:minRange:“ 2500”

我的查询是

"range": {
                      "minRange": {
                        "from": 2000,
                        "to": null,
                        "include_lower": true,
                        "include_upper": true
                      }
                    }

此查询不起作用。如何解决此问题?

1 个答案:

答案 0 :(得分:0)

elasticsearch提供的RangeQuery在内部使用Lucene TermRangeQuery(据我所知,它不分析要搜索的术语)用于类型字符串的字段。另一方面,它将Lucene NumericRangeQuery用于数字/日期类型的字段。 (注意:from是“ 2000”,而不是您的问题中的2000)

$str = '{"id1527":{"stats":"true"},"id6376373":{"stats":"true"},"id63737":"stats":"true"},"x444":{"stats":"false"}}';

echo count(preg_grep("/^id(\d)+$/",array_keys(json_decode($str,true))));