json - 在Elasticsearch中按脚本输出过滤

标签 json groovy elasticsearch

我在带有脚本的Elasticsearch中有很好的输出。

{
  "fields": [
    "_source"
  ],
  "script_fields": {
    "vermogen": {
      "script_file": "vermogen",
      "params": {
        "ruimtetemperatuur": 18,
        "aanvoertemperatuur": 85,
        "retourtemperatuur": 75
      }
    }
  },
  "query": {
    "bool": {
      "must": [],
      "must_not": [
        {
          "constant_score": {
            "filter": {
              "missing": {
                "field": "article.classification.Warmteafgifte EN 442 20gr C - 75/65"
              }
            }
          }
        }
      ]
    }
  }
}

并输出以下内容:
{
  "took": 8,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 5099,
    "max_score": 1,
    "hits": [
      {
        "_index": "items",
        "_type": "article",
        "_id": "AU7PHf_Ltb4sVpfKz-ip",
        "_score": 1,
        "_source": {
          "articleCode": "430003",
          "description": "Paneelradiator Henrad Standaard 300-10-800 270W ",
          "searchTerms": "Aangelaste strippen Ja | Aansluitcombi 18 onderzijde links/onderzijde rechts Ja | Aansluitcombi 32 zijkant linksboven/zijkant linksonder Ja | Aansluitcombi 37 zijkant linksboven/zijkant rechtsonder Ja | Aansluitcombi 62 zijkant rechtsboven/zijkant linksonder Ja | Aansluitcombi 67 zijkant rechtsboven/zijkant rechtsonder Ja | Aansluitcombi 81 onderzijde rechts/onderzijde links Ja | Aantal standaard aansluitingen 4 | Diepte 47mm | Diepte 47mm | Diepte 47mm | Draadaansluiting Binnendraad | Draadmaat (inch) 1/2\" | Glansgraad Glanzend | Hoogte 300mm | Hoogte 300mm | Hoogte 300mm | Kleur Wit | Lengte 800mm | Lengte 800mm | Lengte 800mm | Materiaal Staal | Max. werkdruk 10bar | Met aftapaansluiting Ja | Met ontluchtingsaansluiting Ja | N-exponent 1.283' | RAL-nummer 9016' | Standaard kleur Ja | Type 10 | Type 10 | Type 10 | Type 10 | Vlakke voorplaat Geen | Warmteafgifte bepaald door erkend EN 442 laboratorium Ja | Warmteafgifte EN 442 20gr C - 75/65 270W | Warmteafgifte EN 442 20gr C - 75/65 270W | Warmteafgifte EN 442 20gr C - 75/65 270W | Waterinhoud 1.51l | convector Paneelconvector Convectorradiator radiator radiator rad. | 0430003 | EC011022 | StandardB Radiator",
          "grossPrice": 37.24,
          "supplier": "HENRAD ",
          "productClass": "EC011022",
          "classification": {
            "Aangelaste strippen": "Ja",
            "Aansluitcombi 11 onderzijde links/onderzijde links": "Nee",
            "Aansluitcombi 18 onderzijde links/onderzijde rechts": "Ja",
            "Aansluitcombi 32 zijkant linksboven/zijkant linksonder": "Ja",
            "Aansluitcombi 37 zijkant linksboven/zijkant rechtsonder": "Ja",
            "Aansluitcombi 45 bovenzijde links/bovenzijde rechts": "Nee",
            "Aansluitcombi 54 bovenzijde rechts/bovenzijde links": "Nee",
            "Aansluitcombi 62 zijkant rechtsboven/zijkant linksonder": "Ja",
            "Aansluitcombi 67 zijkant rechtsboven/zijkant rechtsonder": "Ja",
            "Aansluitcombi 81 onderzijde rechts/onderzijde links": "Ja",
            "Aansluitcombi 88 onderzijde rechts/onderzijde rechts": "Nee",
            "Aansluitcombi MB middenboven/middenboven": "Nee",
            "Aansluitcombi MO middenonder/middenonder": "Nee",
            "Aantal standaard aansluitingen": "4",
            "Diepte": "47mm",
            "Draadaansluiting": "Binnendraad",
            "Draadmaat (inch)": "1/2\"",
            "Geschikt voor elektrisch element": "Nee",
            "Geschikt voor vochtige ruimte": "Nee",
            "Glansgraad": "Glanzend",
            "Hoogte": "300mm",
            "Kleur": "Wit",
            "Lengte": "800mm",
            "Materiaal": "Staal",
            "Max. werkdruk": "10bar",
            "Met aftapaansluiting": "Ja",
            "Met aftapper": "Nee",
            "Met bevestigingsmateriaal": "Nee",
            "Met blindstoppen": "Nee",
            "Met bovenbekleding": "Nee",
            "Met eenpuntsaansluiting": "Nee",
            "Met elektrisch element": "Nee",
            "Met ontluchter": "Nee",
            "Met ontluchtingsaansluiting": "Ja",
            "Met thermostatisch ventiel geïntegreerd": "Nee",
            "Met wandconsoles": "Nee",
            "Met zijbekleding": "Nee",
            "N-exponent": "1.283'",
            "RAL-nummer": "9016'",
            "Standaard kleur": "Ja",
            "Type": "10",
            "Vlakke voorplaat": "Geen",
            "Warmteafgifte bepaald door erkend EN 442 laboratorium": "Ja",
            "Warmteafgifte EN 442 20gr C - 75/65": "270W",
            "Waterinhoud": "1.51l"
          }
        },
        "fields": {
          "vermogen": [
            355.81461733776723
          ]
        }
      }
    ]
  }
}

到目前为止一切顺利,但我想查询此脚本的输出。这可能吗??欢迎任何帮助!

最佳答案

为什么不使用script filter,调用执行脚本字段代码的脚本并检查条件。
有关如何尝试的更多信息,请参见here

关于json - 在Elasticsearch中按脚本输出过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31674749/

相关文章:

javascript - Cookie 仅在不使用 JSON.stringify 时设置

常规 : Closures or Methods

elasticsearch - Elasticsearch 排序-非嵌套元素

javascript - 使用循环索引从对象中提取数据的问题

php - 棘手的 Eloquent 查询

grails - 如何将集合字符串转换为集合

elasticsearch - @在grafana指标中是什么意思?

docker - Filebeat甚至没有成功将日志发送到Logstash

PHP 和 JSON 按用户显示列数据

java - 如何使用 Gradle 在 Spring Boot 中覆盖来自 Thymeleaf 1.5.8.RELEASE 的传递依赖 Groovy 版本