Сообщения

Средняя загрузка (load average, la)

Изображение
В вычислениях UNIX загрузка системы (system load) является мерой объема вычислительной работы, которую выполняет компьютерная система. Средняя загрузка (load average) представляет собой среднюю загрузку системы за период времени. Обычно она представлена в виде трех чисел, которые представляют нагрузку на систему в течение последних одно-, пяти- и пятнадцатиминутных периодов. Расчет нагрузки в стиле Unix Все Unix и Unix-подобные системы генерируют безразмерную метрику из трех load average чисел в ядре. Пользователи могут легко запросить текущий результат из оболочки Unix, выполнив команду uptime: $ uptime 14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09 Команды w и top показывают те же три числа средней нагрузки, что и ряд утилит с графическим пользовательским интерфейсом. В Linux к ним также можно получить доступ, прочитав файл /proc/loadavg. Неактивный компьютер имеет число загрузки 0 (бездействующий процесс не учитывается). Каждый процесс, использующий ЦП или ...

Тип поля flattened в Elasticsearch

Изображение
По умолчанию каждое подполе в объекте отображается и индексируется отдельно. Если имена или типы подполей заранее не известны, они отображаются динамически. flattened тип предоставляет альтернативный подход, при котором весь объект отображается как одно поле. Для данного объекта плоское сопоставление (flattened mapping) проанализирует его конечные значения и проиндексирует их в одно поле как ключевые слова. Затем содержимое объекта можно искать с помощью простых запросов и агрегатов. Этот тип данных может быть полезен для индексирования объектов с большим или неизвестным количеством уникальных ключей. Для всего объекта JSON создается только одно сопоставление полей, что может помочь предотвратить взрыв сопоставлений из-за слишком большого количества сопоставлений отдельных полей. С другой стороны, плоские объектные поля представляют собой компромисс с точки зрения функциональности поиска. Разрешены только базовые запросы, без поддержки запросов числового диапазона или выделения. Т...

Сегментное агрегирование в Elasticsearch: агрегирование матрицы смежности

Изображение
Это агрегация сегментов (bucket aggregation), возвращающая форму матрицы смежности. Запрос предоставляет набор именованных выражений фильтра, аналогичный запросу агрегирования фильтров. Каждый сегмент в ответе представляет собой непустую ячейку в матрице пересекающихся фильтров. Учитывая фильтры с именами A, B и C, ответ вернет сегменты со следующими именами: Пересекающиеся сегменты, например A&C, помечаются с использованием комбинации двух имен фильтров с разделителем по умолчанию &. Обратите внимание, что ответ также не включает сегмент C&A, поскольку это будет тот же набор документов, что и A&C. Матрица называется симметричной, поэтому мы возвращаем только ее половину. Для этого мы сортируем строки имен фильтров и всегда используем наименьшее значение в паре в качестве значения слева от разделителя. Пример В следующей агрегации взаимодействий используется adjacency_matrix, чтобы определить, какие группы людей обменивались электронными письмами. PUT emails/_b...

Агрегации в Elasticsearch: сегментное агрегирование

Изображение
Агрегаты сегментов (bucket aggregations) не вычисляют метрики по полям, как агрегаты метрик, а вместо этого создают сегменты документов. Каждый сегмент связан с критерием (в зависимости от типа агрегирования), который определяет, "попадает" ли в него документ в текущем контексте. Другими словами, сегменты эффективно определяют наборы документов. Помимо самих сегментов агрегаты сегментов также вычисляют и возвращают количество документов, которые "попали" в каждый сегмент. Агрегаты сегментов, в отличие от агрегатов метрик, могут содержать субагрегации. Эти субагрегации будут объединены для сегментов, созданных их "родительской" агрегацией сегментов. Существуют разные агрегаторы сегментов, у каждого из которых своя стратегия "сегментирования". Некоторые определяют один сегмент, некоторые определяют фиксированное количество нескольких сегментов, а третьи динамически создают сегменты в процессе агрегации. Максимальное количество сегментов, разреше...

Агрегации в Elasticsearch

Изображение
Агрегирование суммирует ваши данные в виде показателей, статистики или другой аналитики. Агрегации помогут вам ответить на такие вопросы, как: Каково среднее время загрузки моего веб-сайта? Кто мои самые ценные клиенты с учетом объема транзакций? Что будет считаться большим файлом в моей сети? Сколько товаров находится в каждой товарной категории? Elasticsearch разбивает агрегаты на три категории: Агрегаты показателей, которые вычисляют показатели, такие как сумма или среднее значение, на основе значений полей. Агрегаты сегментов, которые группируют документы в сегменты (buckets), также называемые ячейками (bins), на основе значений полей, диапазонов или других критериев. Конвейерные агрегаты, которые принимают входные данные из других агрегатов вместо документов или полей. Запустить агрегацию Вы можете запускать агрегаты как часть поиска, указав параметр aggs API поиска. Следующий поиск запускает агрегацию терминов в my-field: GET /my-index-000001/_search { "a...

Запросы на уровне термина в Elasticsearch: запрос набора терминов (terms_set)

Изображение
Возвращает документы, содержащие минимальное количество точных терминов в указанном поле. Запрос terms_set аналогичен запросу terms, за исключением того, что вы можете определить количество совпадающих терминов, необходимых для возврата документа. Например: Поле programming_languages содержит список известных языков программирования, таких как c++, java или php для кандидатов на работу. Вы можете использовать запрос terms_set для возврата документов, которые соответствуют как минимум двум из этих языков. Поле permissions содержит список возможных разрешений пользователя для приложения. Вы можете использовать запрос terms_set для возврата документов, которые соответствуют подмножеству этих разрешений. Пример запроса Настройка индекса В большинстве случаев вам нужно будет включить отображение числового поля в свой индекс, чтобы использовать запрос terms_set. Это числовое поле содержит количество совпадающих терминов, необходимых для возврата документа. Чтобы узнать, как настроит...

Запросы на уровне термина в Elasticsearch: terms запрос

Изображение
Возвращает документы, содержащие один или несколько точных терминов в указанном поле. Запрос terms такой же, как term запрос, за исключением того, что вы можете искать несколько значений. Пример запроса Следующий поиск возвращает документы, в которых поле user.id содержит kimchy или elkbee. GET /_search { "query": { "terms": { "user.id": [ "kimchy", "elkbee" ], "boost": 1.0 } } } Параметры верхнего уровня для terms запроса field (Обязательный, объект) Поле для поиска. Значение этого параметра представляет собой массив терминов, которые вы хотите найти в указанном поле. Чтобы вернуть документ, один или несколько терминов должны точно соответствовать значению поля, включая пробелы и заглавные буквы. По умолчанию Elasticsearch ограничивает количество запросов до 65536 терминов. Вы можете изменить это ограничение с помощью параметра index.max_terms_count. Чтобы использовать значения полей сущ...