Elasticsearch 5.4 : Use normal and nested fields in same Painless script query?

标签 elasticsearch elasticsearch-5

我有一个这样的映射:

{
  printings: { 
    type: "nested",
    properties: {
      prop1: {type: "number"}
    }  
  },
  prop2: {type: "number"}
}

然后我想构建一个像这样的无痛查询:

"script": {
          "lang": "painless",
          "inline": "doc['prop1'] > (3 * doc['printings.prop2'])"
        }

但是在 Sense 中测试此功能不起作用。如果我用一个简单的数字替换嵌套的 prop2 那么它就可以工作。有没有办法在单个脚本查询中访问根和嵌套 Prop ?

最佳答案

您可以尝试以下查询。

{
"query": {
  "script": {
     "script": {
        "lang": "painless",
        "inline": "params['_source']['prop1'] > (2 * params['_source']['printings']['prop2'])"
     }
   }
 }
}

但是请记住,_source 非常慢。了解更多关于 here

关于 Elasticsearch 5.4 : Use normal and nested fields in same Painless script query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924266/

相关文章:

lucene - 我可以将 Elasticsearch 索引标记为不完整吗?我可以检索 “complete”索引列表吗?

elasticsearch - logstash/elasticsearch 无法解析日期字段尝试了日期格式 [dateOptionalTime] 和带有语言环境的时间戳编号

elasticsearch - 用来自JSON文件的查询打开Kibana控制台吗?

java - Elasticsearch 无法与 Docker 一起运行

elasticsearch - 如何告诉ElasticSearch创建嵌套字段

java - 使用 PreBuiltTransportClient 调用 elasticsearch

python - 检索没有 _source 字段的数据 :

elasticsearch - Elastic Search文本搜索的准确匹配得分更高

elasticsearch - 如何在ElasticSearch中按_version排序数据

elasticsearch - Elastic Search Cluster Config - 在一个物理上自动发现、配置和多弹性