【问题标题】:doc['field'].value never returning valuesdoc['field'].value 从不返回值
【发布时间】:2019-07-12 17:13:03
【问题描述】:

使用 Kibana/Elasticsearch 6.6 版。

尝试运行以下简单的无痛脚本:

String val = "Vanished"; 
if(doc.containsKey('type')) { 
    return doc['type'].value;
}
return val;

Preview Results 部分,当我尝试运行代码时,First 10 results 部分总是:

[]

但是,如果我像下面这样更改代码:

String val = "Vanished"; 
if(doc.containsKey('type')) { 
    return "Present";
}
return val;

我在同一 Preview Results 部分得到以下结果:

[
 {
  "_id": "Kha1NmkBcY4KotEKXsZz",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "1oS1NmkBjBc6pl9UX0IW",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "14S1NmkBjBc6pl9UX0IW",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "whC1NmkBCa8dRNQVXzEW",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "X221NmkBZQRXPOstYIHB",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "Rca1NmkBZrtXVVVdY50r",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "CMS1NmkBwiujVR8BZAt2",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "xhC1NmkBCa8dRNQVZTFf",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "yBC1NmkBCa8dRNQVZTFf",
  "test112": [
   "Present"
  ]
 },
 {
  "_id": "yRC1NmkBCa8dRNQVZTFf",
  "test112": [
   "Present"
  ]
 }
]

有人可以帮忙找出doc['type'].value 失败的原因吗?

【问题讨论】:

  • type 的映射是什么?
  • 它是String。谢谢

标签: elasticsearch elasticsearch-painless kibana-6


【解决方案1】:

通过将脚本更改为以下内容来解决此问题:

String val = "Vanished"; 
if(doc.containsKey('type.keyword')) { 
    return doc['type.keyword'].value;
}
return val;

注意使用type.keyword 而不是type 作为字段名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多