2016-01-27 3 views
1

Я пытаюсь получить статистику по анализируемому полю строки.elasticsearch получить статистику по анализируемому полю

Я пытаюсь получить длину поля строки AVG (в этом примере его заголовок и заголовок иногда могут быть пустыми/нет).

пытался:

GET book/_search 
{ 
     "facets" : { 
      "stat1" : { 
       "statistical" : { 
        "script" : "_source.title?.length()" 
       } 
      } 
     } 
} 

и я получаю сообщение об ошибке:

Query Failed [Failed to execute main query]]; nested: NullPointerException; }]", 
    "status": 500 
} 

как я могу добиться этого?

+1

Вы можете попробовать вместо этого: ' "_source.title .length():? 0"'? Идея состоит в том, чтобы всегда возвращать значение. – Val

+0

это вернуло все записи. Я хочу получить длину avg. –

+0

Вы все еще получаете 'NullPointerException'? Тебе не следует. – Val

ответ

1

Любая причина, по которой вы используете facets, а не агрегации? Если вы не используете версию Elasticsearch, которая поддерживает только грани, я рекомендую переключиться на скопления. Границы устаревают в 1.x и полностью удаляются в 2.x.

И агрегация как этот должен работать нормально:

GET /book/_search 
{ 
    "aggs": { 
    "stat1": { 
     "stats": { 
     "script": "_source.title?.length() ?: 0" 
     } 
    } 
    } 
} 
Смежные вопросы