我在Elasticsearch索引中访问一些多值数组时遇到问题 我在中使用查询 retrieving the multivalued array from elasticsearch 但是我的索引中的一些文档存在null poiter异常,其中存在用于搜索的数组。当我使用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"
}
}
}
]
}
}
]
}
}
}
但是在上面的查询中使用脚本字段时我没有得到这个索引!!
答案 0 :(得分:0)
您可能有一条记录,它不存储_source,或者它的_source没有类别,或类别没有任何类型或类型没有任何事件。只需添加if语句即可检查这些条件。