Elasticsearch:在字段中存储一系列值

时间:2016-05-18 12:29:15

标签: elasticsearch range

这是我第一次提问。

我打算使用Elasticsearch来存储我拥有的某些数据。 我面临的问题是我需要将字段的值存储为可容忍的范围。 像这样- 字段名称 - 耐受pH 示例值 - 5.1 - 7.0

我需要像这样保存它,当执行查询时,它必须查看输入的值是否在范围内。

我在参考和指南中找不到它。 我找到的只是范围过滤器。 有人可以帮帮我吗? 并指导我如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我会创建两个字段

{ ...
  "minToleratedPh": 5.1,
  "maxToleratedPh": 7.0
}

然后使用两个range查询来检查约束minPh < input_value < maxPh是否成立(只需用pH值替换input_value来检查):

{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "minToleratedPh": {
              "lt": input_value
            }
          }
        },{
          "range": {
            "maxToleratedPh": {
              "gt": input_value
            }
          }
        }
      ]
    }
  }
}