/ / Pole powrotu z pierwszego i ostatniego dokumentu w agregacji Elasticsearch - elastyczne wyszukiwanie

Zwróć pole z pierwszego i ostatniego dokumentu w agregacji Elasticsearch - elasticsearch

Mam uporządkowaną agregację histogramu elastycznego, która działa dobrze bez zmian.

Muszę zwrócić pole z pierwszego i ostatniego dokumentu z każdego zasobu agregacji.

Bieżące zapytanie (składnia w stylu ruby):

{
query: {
filtered: {
filter: {
bool: {
must: [
{ term: { some_id: "something" } },
{ range: {
completed_at: {
gte: start,
lte: end
}
}
}
]
}
},
_cache: true,
_cache_key: "special-query"
}
},
aggs: {
intervals: {
histogram: {
field: "completed_at",
interval: 24.hours.to_i,
min_doc_count: 0,
order: { _key: "asc" }
},
aggs: {
start_at: { min: { field: "completed_at" } },
end_at: { max: { field: "completed_at" } },
price_stats: { extended_stats: { field: "rate" } },
}
}
}
}

Przeszukałem dokumentację igoogled w znacznym stopniu, ale nie może znaleźć żadnych rozwiązań.Teraz muszę wysłać drugie zapytanie do bazy danych, aby jawnie pobrać wszystkie wartości dla tego pola, ale chciałbym włączyć tę funkcjonalność do mojego zapytania elasticsearch.

Odpowiedzi:

6 dla odpowiedzi № 1

Chcesz przywrócić wynik na agregację?

To się nazywa Field Collapsing i niestety nie jest jeszcze dostępne w Elasticsearch, zobacz: https://github.com/elasticsearch/elasticsearch/issues/256

Zaktualizuj sept 2014

Jak na @bpierce w komentarzach poniżej: Teraz Elasticsearch 1.3.x jest out, zwijanie pól jest dostępne poprzez agregację top_hits. Obecnie używam go w zapytaniu podobnym do tego.