diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php index 55503d50d6..42c5a63e25 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/Search/FacetsResponse.php @@ -46,22 +46,23 @@ class FacetsResponse if (!isset($bucket['key']) || !isset($bucket['doc_count'])) { $this->throwAggregationResponseError(); } + $key = array_key_exists('key_as_string', $bucket) ? $bucket['key_as_string'] : $bucket['key']; if($tf) { // the field is one of the hardcoded tech fields $value = [ - 'value' => $valueFormatter($bucket['key']), - 'raw_value' => $bucket['key'], + 'value' => $valueFormatter($key), + 'raw_value' => $key, 'count' => $bucket['doc_count'], - 'query' => sprintf($tf['query'], $this->escaper->escapeWord($bucket['key'])) + 'query' => sprintf($tf['query'], $this->escaper->escapeWord($key)) ]; } else { // the field is a normal field $value = [ - 'value' => $bucket['key'], - 'raw_value' => $bucket['key'], + 'value' => $key, + 'raw_value' => $key, 'count' => $bucket['doc_count'], - 'query' => sprintf('field.%s:%s', $this->escaper->escapeWord($name), $this->escaper->escapeWord($bucket['key'])) + 'query' => sprintf('field.%s:%s', $this->escaper->escapeWord($name), $this->escaper->escapeWord($key)) ]; }