Агрегации для фасетного поиска
Используйте агрегации Elasticsearch для построения фасетов, гистограмм и сводных показателей одновременно с результатами поиска.
«Агрегации для фасетного поиска» — бесплатный урок Elasticsearch & Full Text Search Systems на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Elasticsearch & Full Text Search Systems, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Elasticsearch & Full Text Search Systems содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Beyond Matching
Search finds documents; aggregations summarize them. They power faceted navigation, dashboards, and analytics, all in the same request as the search.
Two Families
Aggregations come in two main families:
- Bucket aggregations group documents (e.g. by category)
- Metric aggregations compute numbers (e.g. average price)
A Terms Facet
The terms aggregation produces a bucket per distinct value with counts, the classic facet.
GET /products/_search
{ "size": 0, "aggs": {
"by_category": { "terms": { "field": "category" } }
}}size 0 Trick
Setting size: 0 returns no document hits, only the aggregation results, which is efficient when you only want the facets.
Aggregate on keyword
Aggregations run on non-analyzed fields. Use the keyword field, not the analyzed text field, or you will bucket on individual tokens.
{ "terms": { "field": "brand.keyword" } }Metric Aggregations
Metrics like avg, min, max, and sum compute a single value over matching documents.
"aggs": { "avg_price": { "avg": { "field": "price" } } }Histograms
A histogram buckets numeric values into fixed intervals, great for price ranges.
"aggs": { "price_ranges": {
"histogram": { "field": "price", "interval": 100 }
}}Date Histograms
A date_histogram groups by calendar intervals like day or month, ideal for time-series charts.
"aggs": { "per_day": { "date_histogram": {
"field": "created", "calendar_interval": "day"
}}}Nesting Aggregations
You can nest a metric inside a bucket: average price within each category. Nesting is how rich facets are built.
"aggs": { "by_cat": {
"terms": { "field": "category" },
"aggs": { "avg_price": { "avg": { "field": "price" } } }
}}Facets Respect the Query
Aggregations are computed over the documents that match the query and filters, so facet counts naturally reflect the current search context.
Cardinality for Distinct Counts
The cardinality metric gives an approximate distinct-value count, far cheaper than exact counting on large data.
"aggs": { "unique_brands": {
"cardinality": { "field": "brand.keyword" } } }Quick Check
Why aggregate on a keyword field instead of a text field?
Recap
You learned aggregations for faceted search: bucket aggregations like terms and histograms, metric aggregations like avg and cardinality, nesting metrics inside buckets, the size: 0 trick, and why facets use keyword fields.
Часто задаваемые вопросы
Урок «Агрегации для фасетного поиска» бесплатный?
Да — полный текст урока «Агрегации для фасетного поиска» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Elasticsearch & Full Text Search Systems, подпишись на CoddyKit PRO. Курс Elasticsearch & Full Text Search Systems содержит 4 уроков всего.
Чему я научусь в уроке «Агрегации для фасетного поиска»?
Используйте агрегации Elasticsearch для построения фасетов, гистограмм и сводных показателей одновременно с результатами поиска. Ты практикуешь Elasticsearch & Full Text Search Systems с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Elasticsearch & Full Text Search Systems?
Предыдущий опыт не требуется. Elasticsearch & Full Text Search Systems на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Агрегации для фасетного поиска»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Elasticsearch & Full Text Search Systems?
Да. Каждый урок Elasticsearch & Full Text Search Systems включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Поиск фраз и близости
- Неточные и шаблонные запросы
- Выделение результатов поиска
- Агрегации для фасетного поиска