ElasticSearch Aggregations с помощью скрипта doc_values

У меня есть поле «location_facet», которое является стриг с отображением

"location_facet": {
"type": "string",
"index": "not_analyzed",
"include_in_all": true
},

В этом поле у ​​меня есть location_ids, и я бы хотел сгруппировать их по запросу. Также я хочу получить некоторую информацию по агрегации, поэтому я хотел бы выполнить скрипт, например, я хочу стать названием города, но всегда возникает ошибка:

"aggs": {
"location_radius": {
"terms": {
"field": "location_facet",
"size": 10,
"script": "doc[\"location_name\"].value"}
}
},"type": "script_exception",
"reason": "failed to run inline script [doc[\"location_name\"].value] using lang [groovy]"

У меня есть эта реализация с Facets:

$tagFacet = new \Elastica\Facet\Terms("location_radius");
$tagFacet->setField('location_name');
$tagFacet->setAllTerms(true);
$tagFacet->setSize(100);
$tagFacet->setScript(
"doc['location'].empty ? null : ceil(doc['location'].arcDistanceIn".$unit."(".
$entries->getLocationLatitude().", ".
$entries->getLocationLongitude().")) + '|' + doc['location_name'].value
+ '|' + doc['location_id'].value");

Что я делаю не так?

Если я проверю это:

"aggs": {
"location_radius": {
"terms": {
"field": "location_facet",
"size": 10,
"script": "doc['location'].empty ? null : ceil(doc['location'].arcDistanceInKm(51.2249429, 6.7756524))"}
}
},

Я получаю ошибку:

"type": "script_exception",
"reason": "failed to run inline script [doc['location'].empty ? null : ceil(doc['location'].arcDistanceInKm(51.2249429, 6.7756524))] using lang [groovy]",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Negative position"}

Решение: Все поля документа, которые я могу использовать, также должны быть «index»: «not_analyzed».

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector