0

我无法访问我的 Elasticsearch 索引中的一些多值数组 我使用查询 从 elasticsearch 检索多值数组 但是我在索引中的某些文档出现空指针异常,其中存在为搜索提供的数组。当我使用queryString 查询而不是 match_all

{
took: 3
timed_out: false
_shards: {
    total: 2
    successful: 1
    failed: 1
    failures: [
        {
            status: 500
            reason: NullPointerException[null]
        }
    ]
}

我的查询是

{
 "query":{
  "query_string":{
  "query":"report","default_field":"Content"
 }
},
"script_fields": {
"entity_facets": {
"script": "result=[];foreach(facet : _source.Categories.Types.Events)      

{if(facet.event==event) result.add(facet);} result",
 "params": {
 "event":"AnalystEvent"
  }
  }
 }

}

编辑: 我有一个索引 https://gist.github.com/4129488 我通过运行查询得到

 {
  "from": "0",
  "size": "100",
  "query": {
   "bool": {
   "must": [
   {
    "bool": {
    "must": [
    {
     "query_string": {
     "query": "confronted",
     "default_field":"Content"
    }
   },
   {
    "range": {
    "actualTimeStamp": {
    "from": "23-07-2012 10:04:52",
    "to": "23-09-2012 10:04:52"
   }
 }
 }
  ]
 }
 },
 {
  "bool": {
  "should": [
  {
    "fuzzy": {
    "SourceName": {
     "value": "Economic_Times"
   }
   }
   },
   {
     "fuzzy": {
     "SourceName": {
     "value": "reuters"
    }
   }
  }
 ]
 }
}
]
}
}
}

但是在上面的查询中使用脚本字段时我没有得到这个索引!

4

1 回答 1

0

您可能有一条记录,它不存储 _source,或者它的 _source 没有类别,或者类别没有任何类型或类型没有任何事件。只需添加 if 语句来检查这些条件。

于 2012-11-20T14:52:46.160 回答