<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>不爲也 比不能也</title>
    <link>https://drscg.tistory.com/</link>
    <description>elasticsearch, definitive guide</description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 12:58:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>drscg</managingEditor>
    <image>
      <title>不爲也 比不能也</title>
      <url>https://tistory1.daumcdn.net/tistory/678922/attach/325b6e1f76d94490b68d3189d9fd9a8e</url>
      <link>https://drscg.tistory.com</link>
    </image>
    <item>
      <title>S1000D For Beginners</title>
      <link>https://drscg.tistory.com/750</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;원문: &lt;a href=&quot;https://medium.com/s1000d/s1000d-for-beginners-9a90fea311e7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://medium.com/s1000d/s1000d-for-beginners-9a90fea311e7&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;7a7b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;About&lt;/p&gt;
&lt;p id=&quot;392f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is a guide for technical writers and illustrators. The world of technical writing is changing from the linear writing concept of a beginning, middle and end. It is moving toward a concept of having the precise information you need exactly when you need it in the form that suits you best given the situation you are in right now.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 기술적인 writer와 illustrator를 위한 가이드이다. 기술적인 글쓰기의 세계는 시작, 중간, 마지막의 선형적인 글쓰기의 개념에서 변화하고 있다. 필요한 정확한 정보를, 당신이 처한 상황에 가장 적확한 형태로 정확히 가지고 있다는 개념으로 나아가고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;dc12&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The group leading the charge in this mission is the international standards organization S1000D.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 미션을 주도하는 단체가 국제 표준 기구 S1000D이다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p id=&quot;fda7&quot; style=&quot;text-align: left;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;S1000D is an international specification for the procurement and production of technical documentation. It is a specification for preparing, managing versions of text and illustrations. The&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://s1000d.org/&quot;&gt;S1000D.org&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;established the standards for the exchange of information. This is a basic overview of technical wiring for S1000D compliance.&lt;br /&gt;S1000D는 기술 문서의 조달 및 생산을 위한 국제 사양이다. 텍스트 및 삽화의 버전을 준비하고 관리하기 위한 사양이다. &lt;i&gt;&lt;a href=&quot;https://s1000d.org/&quot;&gt;S1000D.org&lt;/a&gt;&lt;span&gt; 는 정보 교환을 위한 표준을 수립했다. 다음은 S1000D 규정 준수를 위한 기술적인 방식의&amp;nbsp; 기본 개요이다.&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id=&quot;6487&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The purpose of this book is to provide a guide for technical writers and illustrators who want to deliver documentation in compliance with S1000D technical publication standards.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이 책의 목적은 S1000D 기술 출판 표준에 따라 문서를 전달하고자 하는 기술적인 작가와 일러스트레이터를 위한 가이드를 제공하는 것이다.&lt;/p&gt;
&lt;h1 id=&quot;c234&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 1 Good Old Days of Word&lt;/h1&gt;
&lt;p id=&quot;4011&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Most technical writers use MicroSoft Word or a similar application to create technical documentation. However, technical documentation is moving into cloud databases where there is more than meets your eye.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;대부분의 기술 작가는 기술 문서를 작성하기 위해 MicroSoft Word나 유사한 application을 사용한다. 그러나, 기술 문서는 겉으로 보이는 것 이상이 있는 cloud database로 이동하고 있다.&lt;/p&gt;
&lt;p id=&quot;a460&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Most standard applications we have been using for years are not up to the requirements of the digital age. Microsoft Word and other applications simply cannot get the job done.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;유라거 수년간 사용해 온 표준 응용 프로그램은 디지털 시대의 요구사항에 적합하지 않다. Microsoft Word 및 기타 프로그램으로는 작업을 쉽게 완료할 수 없다.&lt;/p&gt;
&lt;p id=&quot;1dcd&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;What is required now is digestible meta data. Searchable connected information and the international standards organization S1000D has defined those data standards.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;지금 요구되는 것은 이해하기 쉬운 meta data이다. 검색 가능한 연결 정보와 국제 표준 기구 S1000D가 이러한 data 표준을 정의했다.&lt;/p&gt;
&lt;p id=&quot;def0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;It is &amp;ldquo;open source&amp;rdquo; which means anyone can use those standards. It does not require a specific software application, so, in theory simply producing text in notepad will do, as long as you adhere to the rules of S1000D. And the primary rule is that the data must be in .xml format.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;그것은 누구나 해당 표준을 사용할 수 있는 &amp;ldquo;open source&amp;rdquo; 이다. 특정 SW application을 필요로 하지 않으므로, S1000D의 규칙을 준수하는 한, 이론적으로 메모장(notepad)에서 간단하게 text를 생성하면 된다. 그리고, 기본 규칙은 data가 .xml 형식이어야 한다는 점이다.&lt;/p&gt;
&lt;h2 id=&quot;7ce0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;XML&lt;/h2&gt;
&lt;p id=&quot;a455&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML is a programming code that has been around since the 1960&amp;rsquo;s. XML stands for eXtensible Markup Language. The programming code was designed to store and transport data. XML was designed from the beginning to be both human and machine-readable.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML은 1960년대부터 사용된 프로그래밍 코드이다. XML은 eXtensible Markup Language의 약자이다. 프로그래밍 코드는 daya를 저장하고 전송하도록 설계되었다. XML은 처음부처 사람과 기계가 모두 읽을 수 있도록 설계되었다.&lt;/p&gt;
&lt;p id=&quot;62ed&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Look at it this way, XML is a set of rules for encoding documents electronically through the use of markup. Its primary purpose is to facilitate the sharing data across different information systems. It is a product of the World Wide Web Consortium (W3C).&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이런 식으로 보면, XML은 markup을 통해 문서를 전자적으로 인코딩하는 규칙의 집합이다. 그것의 주요 목적은 서로 다른 정보 시스템간에 data 공유를 쉽게 하기 위함이다. W3C(the World Wide Web Consortium)의 산출물이다.&lt;/p&gt;
&lt;p id=&quot;152d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML provides a foundation that anyone can use to build a document. It is not proprietary nor &amp;ldquo;owned&amp;rdquo; by anyone. It does have a consortium of international members who keep it an open, usable system for everyone. XML is used globally. It was one of the first tools used for building websites, which became HTML (Hypertext Markup Language).&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML은 누구나 문서를 작성하는데 사용할 수 있는 기반을 제공한다. 소유권이 없고 누구의 소유도 아니다. 모든 이에게 개방적이고 사용가능한 시스템을 유지하는 국제 회원 컨소시엄이 있다. XML은 전세계적으로 사용된다. 웹사이트를 구축하는데 사용된 최초의 도구 중 하나였는데, 그것이 HTML(Hypertext Markup Language)이다.&lt;/p&gt;
&lt;p id=&quot;11ba&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D defines the standardization of XML specifically for technical documentation. And one of the characteristics of the S1000D is that it also uses an &amp;ldquo;open systems&amp;rdquo; approach to the production of technical publications. The specification does not require a specific tool or application.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D는 특히 기술 문서를 위한 XML의 표준을 정의한다. 그리고, S1000D의 특징 중 하나는 기술 출판물 제작에 개방형 시스템(open systems) 방식의 접근을 사용한다는 점이다. 특정 도두나 어플리케이션을 요구하지 않는다.&lt;/p&gt;
&lt;p id=&quot;5db1&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML is used by a variety of industries. Some interesting ones are Golfing: GolfML, Aerospace:Spacecraft Markup Language, Music: Music Markup Language, Advertis&amp;shy;ing: AdXML, Artificial Intelligence: AIML and fiction eBooks: FictionBook.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML은 다양한 산업에서 사용된다. 흥미로운 것들로는 Golfing: GolfML, Aerospace:Spacecraft Markup Language, Music: Music Markup Language, Advertis&amp;shy;ing: AdXML, Artificial Intelligence: AIML and fiction eBooks: FictionBook 이 있다.&lt;/p&gt;
&lt;p id=&quot;11e9&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;What made XML so popular is that it can be exported to iPads, iPhones, internet web browsers, laptops, for any industry and it is adaptable.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML을 매우 인기있게 만든 것은 어떤 산업에 대해서도 iPads, iPhones, internet web browsers, laptops 으로 export될 수 있고, 적응이 가능하기 때문이다.&lt;/p&gt;
&lt;p id=&quot;2b33&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Using music as an example, Music.XML is supported by scorewriting programs including Finale, Sibelius and MuseScore. The Music.XML has optical character recognition (OCR) to recognize sheet music. Most music sequencer programs use the XML codes to get the sequence of music right. This is how digitally music is controlled. It is also used to &amp;ldquo;code&amp;rdquo; the music. They assign words like &amp;ldquo;acoustic&amp;rdquo; and &amp;ldquo;classical&amp;rdquo; and &amp;ldquo;jazz&amp;rdquo;. And when those are placed in a search engine, the results are Wes Montgomery, Django Reinhardt and Pat Metheny.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;음악을 예로 들면, Music.XML은 Finale, Sibelius, MuseScore을 포함한 악보 작성 프로그램에서 지원된다. Music.XML은 악보를 인식하는 OCR(optical character recognition)을 가지고 있다. 대부분의 음악 시퀀서(MIDI, 작곡) 프로그램은 올바른 음악 시퀀스를 얻기 위하여 XML code를 사용한다. 이것이 디지털 음악이 제어되는 방식이다. 또 음악을 &quot;code&quot;하는데 사용된다. 그들은 &amp;ldquo;acoustic&amp;rdquo;, &amp;ldquo;classical&amp;rdquo;, &amp;ldquo;jazz&amp;rdquo; 같은 단어를 할당한다. 검색 엔진에 넣으면, Wes Montgomery, Django Reinhardt, Pat Metheny가 나온다.&lt;/p&gt;
&lt;p id=&quot;00cd&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Think about that for a second. S1000D uses XML as an &amp;ldquo;open source&amp;rdquo; system and tool independent. And provides the structure necessary for implementation of doc&amp;shy;uments and processes across distributed systems. It is powerful without being owned by a company. It is managed by a consortium of people with similar goals in mind &amp;mdash; the miscibility of information for the end users.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;잠시 생각해 보자. S1000D는 &amp;ldquo;open source&amp;rdquo; 시스템과 tool 독립적인 XML을 사용한다. 그리고, 분산 시스템 전반에 걸쳐 document와 process 구현에 필요한 구조를 제공한다. 특정 회사에 소유될 필요없이 강력하다. 그것은 최종 사용자를 위한 정보의 혼용성이라는 유사한 목표를 염두에 두고 있는 사람들의 컨소시엄에 의해 관리된다.&lt;/p&gt;
&lt;p id=&quot;cd46&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D is the resource for technical authors and illustrations. It is an XML specifi&amp;shy;cation for the procurement and production of technical manuals. The specification is freely available for any industry to utilize and available from public.s1000D.org.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D는 기술 작가 및 삽화가를 위한 리소스이다. 기술 매뉴얼의 조달 및 생산을 위한 XML 규격이다. 이 규격은 모든 업계가 자유로이 사용될 수 있고 public.s1000D.org에서 이용할 수 있다.&lt;/p&gt;
&lt;p id=&quot;e285&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The S1000D steering committee consists of many participating organizations. The Aerospace and Defense Industries Association of Europe. The International Standards organization for integrated logistics support, the Airlines for America and others.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D 운영 위원회는 많은 참여 기관으로 구성되어 있다. 유럽 항공 우주 방위 산업 협회, 통합 물류 지원을 위한 국제 표준 기구, 미국 항공 및 기타 기관이 있다.&lt;/p&gt;
&lt;p id=&quot;287e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;And all of the documents are required to be delivered in XML format for S1000D. First, before talking about XML, you need to understand how some of the basic terms and definitions from the old days of printed copies and PDF have changed.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;그리고, 모든 문서는 S1000D용 XML 형식으로 전달되어야 한다. 먼저, XML에 대하여 이야기하기 전에 인쇄된 복사본과 PDF의 오래된 기본 용어 및 정의가 어떻게 바뀌었는지 이해해야 한다.&lt;/p&gt;
&lt;h2 id=&quot;1de4&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;eDocuments&lt;/h2&gt;
&lt;p id=&quot;c64d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Using Word we called it &amp;ldquo;a document&amp;rdquo;. Those who pay attention will notice that I used the past tense for using the Word application. For those who obey the rules of Simplified Technical English, we use the present tense. In the world of electronic publishing (epub) we do not create &amp;ldquo;documents&amp;rdquo;. We create Data Modules (DMs).&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Word를 사용한 것을 우리는 &quot;document&quot;라 불렀다. 잘 살펴보면, Word application을 사용한 것에 대해 과거 시제를 사용했다는 것을 알 수 있을 것이다. 간체화된 기술 영어(Simplified Technical English)를 따르는 이들을 위해 현재 시제를 사용한다. 전자 출판(epub)의 세계에서, &quot;document&quot;를 만들지 않는다. Data Module(DM)을 만든다.&lt;/p&gt;
&lt;p id=&quot;00ad&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;They are called &amp;ldquo;Data Modules&amp;rdquo; because it is all about the data. Text, illustrations, dates, part numbers, warnings, cautions, notes. They are all considered data.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;그것들은 data에 대한 모든 것이기 때문에 &amp;ldquo;Data Modules&amp;rdquo;이라 한다. 텍스트, 그림, 날짜, 부품 번호, 경고, 주의 메모. 이 모두는 data로 간주된다.&lt;/p&gt;
&lt;p id=&quot;279a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;In the old days this was the document name. In S1000D it is the Technical Manual Identification Number (TMIN). The identification number has a specific format. We will discuss the naming conventions for the TMIN in detail later, but here are some examples.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;과거에는 이것이 document name이었다. S1000D에서 그것은 기술 매뉴얼 식별 번호(TMIN)이다. 시별 번호는 특정 형식이 있다. TMIN의 명명 규칙에 대해서는 자세히 설명하겠지만, 몇 가지 예를 들어 보겠다.&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_ZMD_2gRIDXDvyqg4H6fpbQ.png&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpdP5W/btrBFHDDEPo/Lcq612zUgmoVTKBGBek4cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpdP5W/btrBFHDDEPo/Lcq612zUgmoVTKBGBek4cK/img.png&quot; data-alt=&quot;TMIN Examples ( http://s1000d.expert/ )&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpdP5W/btrBFHDDEPo/Lcq612zUgmoVTKBGBek4cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpdP5W%2FbtrBFHDDEPo%2FLcq612zUgmoVTKBGBek4cK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;694&quot; height=&quot;591&quot; data-filename=&quot;1_ZMD_2gRIDXDvyqg4H6fpbQ.png&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;TMIN Examples ( http://s1000d.expert/ )&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p id=&quot;6a69&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Technical writers try to write a document so that the Readers will understand what to do and how things work. And Technical Illustrators try to create graphics so that Readers can see the components and determine the part numbers they need.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;기술 저자는 독자가 해야할 일과 작업을 하는 방법을 이해할 수 있도록 문서를 작성하려 한다. 그리고, 기술 삽화가는 독자가 구성 요소를 보고 필요한 부품번호를 결정할 수 있도록 그림을 작성한다.&lt;/p&gt;
&lt;p id=&quot;3138&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D was created to make both the text and graphical data digestible and transferable and understandable by both the Reader and the equipment and software program applications.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D는 독자와 장비 SW 프로그램 어플리케이션 모두에서 텍스트와 그림을 모두 소화/전송/이해 가능하도록 만들었다.&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;bd49&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The standard for publication is more than just &amp;ldquo;text&amp;rdquo; and a &amp;ldquo;markup language&amp;rdquo;. The S1000D is all about the data. The whole set of data: maintenance, customer service, shipping and receiving, illustrations, parts, operating manuals and the engineering drawings. All of it linked together in the digital format. At their best, technical writers compile of the data into information that is useful. What good is having the data if it is not readily available at your fingertips. Imagine useful information that does not need to be reentered for other systems. This is far more valuable than being handed &amp;ldquo;a PDF file&amp;rdquo; or a thumb drive with all of your data.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;출판의 기준은 &amp;ldquo;text&amp;rdquo; 와 &amp;ldquo;markup language&amp;rdquo; 그 이상이다. S1000D는 data에 대한 모든 것이다. 전체 data set: 유지보수, 고객 서비스, 배송 및 수령, 일러스트레이션, 부품, 작동 매뉴얼 및 엔지니어링 도면. 이 모든 것이 디지털 형식으로 함께 연결되었다. 기술 작성자는 data를 유용한 정보로 편집한다. data를 쉽게 사용할 수 없다면, data가 있어도 문슨 소용인가? 다른 시스템에 다시 입력할 필요가 없는 유용한 정보를 상상해 보자. 이것은 &quot;PDF 파일&quot;이나 모든 데이터가 포함된 USB를 받는 것보다 훨씬 더 낫다.&lt;/p&gt;
&lt;p id=&quot;f58c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This book is written to provide a general working knowledge of S1000 for technical writers and illustrators. Here we present S1000D requirements as if creating the manuals using the old tool MicroSoft Word application. After all, if it is essentially the same information, how different can it be?&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이 책은 기술작가와 삽화가에게 S1000D에 대한 일반적은 작업 지식을 제공하기 위해 작성되었다. 여기에서는 이전의 MicroSoft Word application을 사용하여 매뉴얼을 만드는 것처럼, S1000D 요구사항을 제시한다. 결국, 본질적으로 동일한 정보라면 얼마나 다를까?&lt;/p&gt;
&lt;p id=&quot;3dc8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;As different as night and day.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;완전히 다르다.&lt;/p&gt;
&lt;h2 id=&quot;6259&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Headers&lt;/h2&gt;
&lt;p id=&quot;a995&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;They&amp;rsquo;re called &amp;ldquo;Page Headers&amp;rdquo; in Word. The same things in the PDF (Portable Doc&amp;shy;ument Format by Adobe) version are called &amp;ldquo;Running Heads&amp;rdquo;. However, some of the Soft&amp;shy;ware applications for e-books use the term &amp;ldquo;Viewer Bars&amp;rdquo;.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Word에서는 &amp;ldquo;Page Headers&amp;rdquo; 라 한다. PDF에서는 &amp;ldquo;Running Heads&amp;rdquo; 라 한다. 그러나 e-book 용 SW 프로그램 중 일부는 &amp;ldquo;Viewer Bars&amp;rdquo; 라는 용어를 사용한다.&lt;/p&gt;
&lt;p id=&quot;03c3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Notice the Page Headers include the &amp;ldquo;security classification&amp;rdquo;.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Page Header는 &amp;ldquo;security classification(보안 분류)&amp;rdquo;가 포함되어 있다.&lt;/p&gt;
&lt;p id=&quot;3722&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;TMIN is basically the file name of the document. We will discuss this as a stand alone topic to understand the requirements according to S1000D.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;TMIN은 기본적으로 document의 file name이다. 이것은 S1000D의 요구사항을 이해하기 위한 독입적인 주제로 다룰 것이다.&lt;/p&gt;
&lt;h2 id=&quot;4ab2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Footers&lt;/h2&gt;
&lt;p id=&quot;5f12&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D requires that Page Footers can contain UP TO three (3) pieces of data. Up to 3 pieces of data and not more.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D는 Page Footers에 최대 3개의 data를 포함할 수 있다. 최대 3개 더 이상은 없다.&lt;/p&gt;
&lt;h2 id=&quot;ec19&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Change Management&lt;/h2&gt;
&lt;p id=&quot;7bb9&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Publications have always involved the process of updating and releasing publications with changes, revisions, deleted text, reinstated stuff. The frequency of updating and releasing publications was decided by project.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;출판물은 항상 변경사항(changes), 개정사항(revisions), 삭제된 text, 복원된 내용으로 출판물을 업데이트하고 발간하는 과정을 가지고 있다. 출판물을 업데이트하고 발표하는 빈도는 프로젝트별로 결정된다.&lt;/p&gt;
&lt;p id=&quot;1ab0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Changes were designated using &amp;ldquo;Change Bars&amp;rdquo;, the big 4.5 point black bar that was posted next to the stuff that changed.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;변경사항(changes)은 변경된 내용 옆에 게시된 큰 4.5 point 검은색 막대인 &amp;ldquo;Change Bars&amp;rdquo; 를 사용하도록 지정되었다.&lt;/p&gt;
&lt;p id=&quot;cb90&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Reasons for changes are summarized and recorded in the identification and status section. We used to debate if the change bar threshold was more than 50% of the page, which made it hard to read, then we marked the footer as the whole page was &amp;ldquo;revised&amp;rdquo; and removed the change bars.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;변경 사유는 identification(식별), status(상태) section에 요약되어 기록된다. change bar의 임계값이 50% 이상이 되어 읽기 어려운지 여부에 대해 토론한 다음에, 전체 페이지가 &amp;ldquo;revised&amp;rdquo;(개정) 되었다고 footer(바닥글)을 표시하고, 변경 표시줄을 제거했다.&lt;/p&gt;
&lt;p id=&quot;ead0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;By the time we got to revision Z, Roger lost all his hair. It had become to unmanageable.&lt;/p&gt;
&lt;p id=&quot;be43&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For S1000D all of the changes, except for editorial changes, must be marked and provided a reason for update. The reason for update text is used to automatically generate the Revision Summary for the technical manual (TM).&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D의 경우, 편집 변경 사항을 제외한 모든 변경 사항을 표시하고 업데이트 이유를 제공해야 한다. 업데이트 이유 텍스트는 기술 매뉴얼(TM)에 대한 Revision Summary(개정 요약)를 자동으로 생성하는데 사용된다.&lt;/p&gt;
&lt;p id=&quot;5544&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;And if you think about it, it makes perfectly good sense that Changes can only be marked for issues that are numbered 002 and above. There are lots of rules in the game of S1000D. This one is just the beginning.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 생각해 보면, 변경 사항(Changes)은 번호가 002 이상인 issue에 대해서먼 표사할 수 있다는 것이 대단히 합리적이다. S1000D에는 많은 규칙이 있다. 이것은 시작에 불과하다.&lt;/p&gt;
&lt;p id=&quot;44ca&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Changes to documentation requires using &amp;ldquo;elements&amp;rdquo;. The change element looks like this: &amp;lt;reasonForUpdate&amp;gt;. The attributes, or choices for that element, are &amp;lsquo;changeMark&amp;rsquo;, &amp;lsquo;changeType&amp;rsquo;, and &amp;lsquo;reaonForUpdateRefIDs&amp;rsquo;. More on this later.&lt;/p&gt;
&lt;p data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;문서를 변경하려면 &amp;ldquo;elements&amp;rdquo; 를 사용해야 한다. change element는&lt;span&gt;&amp;nbsp;&amp;lt;reasonForUpdate&amp;gt;&lt;span&gt; 이다. 해당 element에 대한 attribute 나 choice 는 &amp;lsquo;changeMark&amp;rsquo;, &amp;lsquo;changeType&amp;rsquo;, &amp;lsquo;reaonForUpdateRefIDs&amp;rsquo; 이다. 자세한 사항은 나중에 ...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;af85&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Issue Numbering&lt;/h2&gt;
&lt;p id=&quot;452a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Sometimes referred to as &amp;ldquo;revision level&amp;rdquo; for the document, the &amp;ldquo;initial revision&amp;rdquo; was designated as &amp;ldquo;IR&amp;rdquo; and then it became &amp;ldquo;Rev A&amp;rdquo;, and so forth.&lt;/p&gt;
&lt;p id=&quot;39cb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D revision tracking is called &amp;ldquo;Issue Number&amp;rdquo; and it starts with the draft version which is numbered 000 and when it is approved and ready to release it becomes the original issue 001. The next version becomes issue 002 and the like.&lt;/p&gt;
&lt;h2 id=&quot;756f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Drafts&lt;/h2&gt;
&lt;p id=&quot;4205&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Drafts were sent out as &amp;ldquo;PDF&amp;rdquo; files and reviewed by the subject matter experts. They ignored these drafts whenever possible. I don&amp;rsquo;t think anyone likes to read anymore.&lt;/p&gt;
&lt;p id=&quot;4d1c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;With S1000D drafts are designated using the attribute &amp;lsquo;inwork&amp;rsquo;&lt;/p&gt;
&lt;p id=&quot;77a1&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The attribute &amp;lsquo;inwork&amp;rsquo; for the element &amp;lt;issueInfo&amp;gt; is used to track and control the intermediate drafts until the final released issue. The initial &amp;ldquo;inwork&amp;rsquo; number Shall be set to &amp;ldquo;01&amp;rdquo; and Shall be incremented with every change to the data module.&lt;/p&gt;
&lt;h2 id=&quot;f8c6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Applicability&lt;/h2&gt;
&lt;p id=&quot;020a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Applicability specifies parameters and associated data for a particular installation.&lt;/p&gt;
&lt;p id=&quot;801e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For every data module (DM) there are the questions of Applicability. These are the settings to allow the end-user to tailor their view of the publications, by selecting a specific configuration. These are usually physical characteristics such as color or system, component, or piece part. But it can include other aspects of modifications such as the manual change requests (MCR), field changes, repairs, or even environmental conditions.&lt;/p&gt;
&lt;h2 id=&quot;7e3d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Bike Example&lt;/h2&gt;
&lt;p id=&quot;21ee&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he international standards group created a bike example for S1000D.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/MhrBE/btrBCr9BLTv/wv8qlOEXTHbVHjdbCzmdA1/PMC-S1000DBIKE-C3002-LOAP1-00_000-02_EN-US.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;PMC-S1000DBIKE-C3002-LOAP1-00_000-02_EN-US.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;15.20MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
Mountain Bike Manual (&lt;a href=&quot;https://www.docuneering.com/s1000d/demo/pdf/PMC-S1000DBIKE-C3002-LOAP1-00_000-02_EN-US.pdf&quot;&gt;https://www.docuneering.com/s1000d/demo/pdf/PMC-S1000DBIKE-C3002-LOAP1-00_000-02_EN-US.pdf&lt;/a&gt;)
&lt;h2 id=&quot;f276&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Way Beyond Word&lt;/h2&gt;
&lt;p id=&quot;ac1a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;What makes S1000D far superior to just the written word is the data structure for a Common Source Data Base (CSDB). The closest way I can to describe the difference is that a word document is formed based on a formatting hierarchy. The arrangement of the document is based on the rules of topics broken down into smaller topics. The topics used to be called &amp;ldquo;First Order Headings&amp;rdquo;, and topic underneath that was called a &amp;ldquo;Second Order Heading&amp;rdquo;. Each of these nested topics would have a formatting assigned to them. The First Order Headings were big and bold. The Second Order Headings were smaller and maybe indented a little. You get the idea.&lt;/p&gt;
&lt;h2 id=&quot;ead8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Common Source Data Base (CSDB)&lt;/h2&gt;
&lt;p id=&quot;f365&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Common Source Data Base is a structure for data more like a map or a tree. In this structure, &amp;ldquo;Food&amp;rdquo; is called the &amp;ldquo;parent&amp;rdquo;. &amp;ldquo;Meat&amp;rdquo; and &amp;ldquo;Fruit&amp;rdquo; are called the &amp;ldquo;child&amp;rdquo;. And in a data base, a numerical id would be assigned to each &amp;ldquo;node&amp;rdquo;. Databases are used when there is a lot of data so that when it is populated with all the data someone can query the database to display only the information they need to see.&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_FLREVoG7U6eFnOyde-XsLg.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OvRb6/btrBtc6jbpI/s28Gi7g9JIx0OKnZzK9AEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OvRb6/btrBtc6jbpI/s28Gi7g9JIx0OKnZzK9AEK/img.png&quot; data-alt=&quot;CODB Structure&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OvRb6/btrBtc6jbpI/s28Gi7g9JIx0OKnZzK9AEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOvRb6%2FbtrBtc6jbpI%2Fs28Gi7g9JIx0OKnZzK9AEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;318&quot; data-filename=&quot;1_FLREVoG7U6eFnOyde-XsLg.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CODB Structure&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p id=&quot;723a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is the CODB Structure for &amp;ldquo;Food&amp;rdquo;. To display the whole &amp;ldquo;food&amp;rdquo; tree, they would run the function with an empty string as $par&amp;shy;ent and $level = 0: display_children (&amp;lsquo; &amp;lsquo;,0); and it would return a list of all of the food. But that level of detail is more than you really wanted to know. So let&amp;rsquo;s move past the Good Ol&amp;rsquo; Days of Word to see how the &amp;ldquo;data modules&amp;rdquo; replace &amp;ldquo;word documents. &amp;rdquo;&lt;/p&gt;
&lt;p id=&quot;beba&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;When the information is obtained from the database it is written in a code. For example this is what it looks like to ask for all of the Customers by Name and Age.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_cwzNIFuOXaI_bkgoHBrjXw.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XkMET/btrBGf7HGs9/KN6DheKVWyNbkvSoDhaqrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XkMET/btrBGf7HGs9/KN6DheKVWyNbkvSoDhaqrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XkMET/btrBGf7HGs9/KN6DheKVWyNbkvSoDhaqrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXkMET%2FbtrBGf7HGs9%2FKN6DheKVWyNbkvSoDhaqrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;720&quot; data-filename=&quot;1_cwzNIFuOXaI_bkgoHBrjXw.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;4e61&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 2 The Data Modules&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h2 id=&quot;dc40&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;T&lt;/span&gt;he S1000D Standard Specification&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p id=&quot;c5e6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he S1000D specification is free to download and use. The information presented in this book is a basic introduction to the concepts of S1000D. There is much to learn. We start with the &amp;ldquo;data module&amp;rdquo;, or some times they call it a &amp;ldquo;data unit&amp;rdquo;. In the old days, we used to call it a &amp;ldquo;manual&amp;rdquo;.&lt;/p&gt;
&lt;p id=&quot;f123&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The data modules are one component. Other components of the S1000D specifica&amp;shy;tions are introduced as we need them for a technical writing project. First, we focus on the data modules.&lt;/p&gt;
&lt;p id=&quot;f5e0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The concept of a data module is not new. Teachers used to tell us &amp;ldquo;start with an out&amp;shy;line&amp;rdquo;. When all is said and done, a data module, it just an outline. The Data Module is a basic outline of topics and the order in which they should be presented in a tech&amp;shy;nical document.&lt;/p&gt;
&lt;p id=&quot;a044&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;There is a Data Module for basically every type of technical information that is required. This chapter provides an overview of 4 data modules. This is where you are supposed to ask: how where they rated? rated by whom? who funded the research for the rating? Calm thyself. It was me. I rated them based on my opinion of which data modules a technical writer or illustrator use the most.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h2 id=&quot;06de&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;The Data Modules&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p id=&quot;1694&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;S&lt;/span&gt;1000D defines data modules as &amp;ldquo;the smallest self-contained information unit within a technical publication&amp;rdquo;. So right out of the starting gate, we might assume a data module (DM) as the same thing as a Word document. It would be a starting point to understand the difference. Actually, it would be more accurate to say that the data module is like a Word Template. So you could assume that it would be as simple as using Word to &amp;ldquo;Save As&amp;rdquo; an &amp;ldquo;XML&amp;rdquo; document. You could say that, but you would be wrong.&lt;/p&gt;
&lt;p id=&quot;a50c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;It&amp;rsquo;s what&amp;rsquo;s under the hood that counts. And we&amp;rsquo;ll get back to that in a minute.&lt;/p&gt;
&lt;p id=&quot;34b6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;First of all, it&amp;rsquo;s comforting to know the hard work to sort this all out was has already been done. The AeroSpace and Defense Industries Association of Europe (ASD) is the organization who produces standards and specifications. They worked with Boeing, Lockheed Martin, General Dynamics and others. Remember the Simplified English and writing rules. That was them. Remember the iSpec220 that is &amp;ldquo;owned&amp;rdquo; by the ATA. That was them too. And now they have created the S1000D for techni&amp;shy;cal publications. The goal, of course, is to standardize information. It all starts with various types of Data Modules (DM).&lt;/p&gt;
&lt;p id=&quot;68d9&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The data module types are described at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.s1000d.nettable/&quot;&gt;www.s1000d.netTable&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;. They are free. The following table provides a list of my top five DMs. Remember that S100D was devel&amp;shy;oped specifically for Technical Publications, so these should sound very familiar.&lt;/p&gt;
&lt;p id=&quot;c75a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Technical manuals are created from combining data modules. The DM is a stand alone information unit just like a chapter out of a book. Traditional S1000D data modules are: Procedure, Description, Parts, Scheduled Maintenance, Fault Isolation or Operational.&lt;/p&gt;
&lt;p id=&quot;b208&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;There is also a set of supporting data and other specific documentation to accom&amp;shy;pany the data modules, but we will save that topic for later. The following table pres&amp;shy;ent the types of data modules and a description of each of them.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_ZZdAUHYoHSIzpgrFJjIAaw.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7UG6v/btrBtc6jGTN/p7r64CINg4Vp8bcN2gStz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7UG6v/btrBtc6jGTN/p7r64CINg4Vp8bcN2gStz1/img.png&quot; data-alt=&quot;Data Modules and Descriptions&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7UG6v/btrBtc6jGTN/p7r64CINg4Vp8bcN2gStz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7UG6v%2FbtrBtc6jGTN%2Fp7r64CINg4Vp8bcN2gStz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;511&quot; data-filename=&quot;1_ZZdAUHYoHSIzpgrFJjIAaw.png&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Data Modules and Descriptions&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;244d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Data Module Contents and Meta Data&lt;/h2&gt;
&lt;p id=&quot;2dce&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;E&lt;/span&gt;ach data module has a &amp;ldquo;Contents&amp;rdquo; area which is what the end user sees and &amp;ldquo;Meta Data&amp;rdquo; that the user does not see. The contents are described by the module name: Descriptive, Procedural, Process, etc. But an important part of the Data Module is the Meta Data that is &amp;ldquo;under the hood&amp;rdquo;, so to speak because it is not seen by the end user.&lt;/p&gt;
&lt;p id=&quot;364f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Under the hood, the Meta Data provide the &amp;ldquo;hooks&amp;rdquo; to find information, and sort data. When you use an internet browser to search for &amp;ldquo;jazz, music, guitar&amp;rdquo; the words are meta data tags which search the stored data to retrieve Fats Waller, Diann Krall, We Mongomery, Joe Pass.&lt;/p&gt;
&lt;p id=&quot;4c93&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D has defined the meta data. This is what enables the transport of the docu&amp;shy;mentation between various s. No matter whose data base stores the data, the meta data is the same. No matter who wrote the application to reach the document, the information is readable&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h2 id=&quot;5dcb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Data Module Code (DMC)&lt;/h2&gt;
&lt;p id=&quot;2f3a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The Data Module Code (DMC) is a unique code of short-hand information about the data module contents. This is the standard naming convention for a data mod&amp;shy;ule. DMC is an accurate description of the contents for the module without having to open the files.&lt;/p&gt;
&lt;p id=&quot;4bc8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The DMC is the unique &amp;ldquo;description&amp;rdquo; for the document in short hand form. Later on we will discuss the details, but for right now here is a preview of upcoming events. The DMC must be included in the header information for S1000D. The DMC con&amp;shy;tains the following information:&lt;/p&gt;
&lt;p id=&quot;a54b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MODEL&lt;/b&gt;&lt;/p&gt;
&lt;p id=&quot;718f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The Model is the model or overall to which the technical data is applica&amp;shy;ble. My motorcycle is an F650 model made by BMW. The model is assigned by the company or programming manager when the data module is created for a specific project.&lt;/p&gt;
&lt;p id=&quot;ebcc&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SYSTEM CODE&lt;/b&gt;&lt;/p&gt;
&lt;p id=&quot;bfca&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The system is a generic method of organizing the information. The S1000D System and Subsystem codes are extensive. The following table pres&amp;shy;ents several different codes which might be useful&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_3EU0QkhcDQsg0ZjUi3N4xw.png&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N3HB8/btrBAQHXbDu/k7ZnFckDdZxhIfa1LHfTd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N3HB8/btrBAQHXbDu/k7ZnFckDdZxhIfa1LHfTd0/img.png&quot; data-alt=&quot;Systems and Subsystem Codes and Definitions&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N3HB8/btrBAQHXbDu/k7ZnFckDdZxhIfa1LHfTd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN3HB8%2FbtrBAQHXbDu%2Fk7ZnFckDdZxhIfa1LHfTd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;459&quot; data-filename=&quot;1_3EU0QkhcDQsg0ZjUi3N4xw.png&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Systems and Subsystem Codes and Definitions&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p id=&quot;d184&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SYSTEM DIFFERENCE CODE&lt;/b&gt;&lt;/p&gt;
&lt;p id=&quot;3f82&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he System Difference Code indicates there are alternative versions of the system and subsystem without affecting the type, model or variant identity. The Sys&amp;shy;tem Variance Codes are used to identify information that is specific to one unique configuration.&lt;/p&gt;
&lt;p id=&quot;d09a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This fits the need when there are twin models produced. For example, there is a sys&amp;shy;tem number for the standard F650 right off the assembly line, and there a code to identify the customized F650s which are created. Each customized bike is assigned a &amp;ldquo;systemDiffCode&amp;rdquo;.&lt;/p&gt;
&lt;p id=&quot;783d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;STANDARD NUMBERING SYSTEM (SNS)&lt;/b&gt;&lt;/p&gt;
&lt;p id=&quot;710b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he standard numbering system is not new. The code was created a way to break the whole assembly into smaller components. The same group that developed the Standard Numbering Sys&amp;shy;tem (SNS) also created the S1000D system. Typical standard breakdown of compo&amp;shy;nents would be the motor, the drive train, the electrical components.&lt;/p&gt;
&lt;p id=&quot;bf98&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For the aircraft industry, the ATA Standard Numbering System is provided in the ATA iSpec 2000 reference document. This document provides the Information Standards for Aviation Maintenance. So if you work on airplanes and you want to know about the air conditioning system, the answer is always the same: &amp;ldquo;Section 21&amp;rdquo;. Th the main distribution system for the air conditioning is always in Section 21. Within the Section of Air Conditioning there are chapters. Chapter 23 is recircula&amp;shy;tion. The &amp;ldquo;Chapter&amp;rdquo; is broken down into additional pair of numbers. The Air Return Grill is, for example, 03 while the sidewall risers are 04. So to find the infor&amp;shy;mation on air conditioning air return grill, look in 21&amp;ndash;23&amp;ndash;03. If you are looking for side wall riser information go to 21&amp;ndash;23&amp;ndash;04. So, you will notice that the SNS is a hier&amp;shy;archy of three pairs of numbers. The following table presents a examples for SNS codes for the aircraft business.&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_Ib3bwnl0hIC66vWpP_qnfw.png&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/voarC/btrBFHDE6wQ/Kqta9ZQTK6Jixz8MeQOky1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/voarC/btrBFHDE6wQ/Kqta9ZQTK6Jixz8MeQOky1/img.png&quot; data-alt=&quot;Standard Numbering System (SNS)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/voarC/btrBFHDE6wQ/Kqta9ZQTK6Jixz8MeQOky1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvoarC%2FbtrBFHDE6wQ%2FKqta9ZQTK6Jixz8MeQOky1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;128&quot; data-filename=&quot;1_Ib3bwnl0hIC66vWpP_qnfw.png&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;128&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Standard Numbering System (SNS)&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;8a9b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;DISASSEMBLY CODE&lt;/h2&gt;
&lt;p id=&quot;1859&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he Disassembly Code is typically used to identify the order in which parts are removed. This identifies the breakdown condition of an assembly to which maintenance information applies. The pair of numbers starts with &amp;ldquo;01&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&quot;bd3e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;DISASSEMBLY CODE VARIANT&lt;/h2&gt;
&lt;p id=&quot;9595&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;U&lt;/span&gt;sed when two or more data modules share the same number a disassembly code variant can be created to identify the level of disassembly for the variation. For those who are familiar with illustration parts catalogue this is the Alternative Logistic Control Number (ALC) or the Alternate Indentured Product Code (AIPC).&lt;/p&gt;
&lt;p id=&quot;5c91&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Going back to my BMW motorcycle, I have a Tall Windshield, where other people have a short windshield. And the directions to remove them are slightly different for the same bike. This is a variant of the disassembled bike.&lt;/p&gt;
&lt;h2 id=&quot;a623&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;FUNCTION CODE&lt;/h2&gt;
&lt;p id=&quot;c6d2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he function code describes which type of directions are pro&amp;shy;vided. A function code is a 3-digit number. A short list of the Primary functional codes are provided in the following table.&lt;/p&gt;
&lt;p id=&quot;f5e2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;A 400 level function code provides fault reports and isolation procedures. Whereas 500 level function codes provides instructions to disconnect, remove and disassem&amp;shy;ble something. The following table provides a sample of the most often used pri&amp;shy;mary function codes. The entire set of function codes is literally pages and pages of selection available.&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_pBZe2XWYbLqZx5NANt4Dpw.png&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lbbgm/btrBGfzTfC2/8cx0G8VAVLorT1WblP3BxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lbbgm/btrBGfzTfC2/8cx0G8VAVLorT1WblP3BxK/img.png&quot; data-alt=&quot;Function Codes for Task Descriptions&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lbbgm/btrBGfzTfC2/8cx0G8VAVLorT1WblP3BxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flbbgm%2FbtrBGfzTfC2%2F8cx0G8VAVLorT1WblP3BxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;390&quot; height=&quot;574&quot; data-filename=&quot;1_pBZe2XWYbLqZx5NANt4Dpw.png&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Function Codes for Task Descriptions&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;0224&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;FUNCTION CODE VARIANT&lt;/h2&gt;
&lt;p id=&quot;5d41&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;T&lt;/span&gt;he Function Code Variant is a one Letter assign&amp;shy;ment. The basic, off the shelf item starts with the letter A. Instructions for a specific installation, or a one-off is indicated by letter B. This provides ability to deliver spe&amp;shy;cific task instructions.&lt;/p&gt;
&lt;h2 id=&quot;58e8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;ITEM LOCATION&lt;/h2&gt;
&lt;p id=&quot;7bba&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;I&lt;/span&gt;tem Location code identifies the location of the unit on which mainte&amp;shy;nance is being performed. Some maintenance is performed while it is installed on the aircraft, which some maintenance is only performed after the item has been removed from the aircraft and is sitting on the work bench&lt;/p&gt;
&lt;p id=&quot;2c84&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Together these codes for hardware and identification, the information of primary function and learning type creates the Data Module Code (DMC). The DMC can range from a set of 17 to 41 alphanumeric characters.&lt;/p&gt;
&lt;h2 id=&quot;b178&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;IMPORTANT TO KNOW ABOUT DMC&lt;/h2&gt;
&lt;p id=&quot;e845&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;It is vitally important for everyone involved in the project to understand and agree on the DMC codes before the project starts. These important variables are used to look-up and search for information later.&lt;/p&gt;
&lt;p id=&quot;ad23&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;These become the &amp;ldquo;hooks&amp;rdquo; by which any data is retrieved from the database. So if you want to know which valves were installed and where three years from now, how these fields of information are filled become vitally important. Worst of all, if you are inconsistent in the manner in which the data is populated it will be a giant mess.&lt;/p&gt;
&lt;p id=&quot;2382&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The quality of the data out is only as good as the data put into the database.&lt;/p&gt;
&lt;p id=&quot;309d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Before the project even begins, document how the DMC is defined. Make sure this is a &amp;ldquo;live&amp;rdquo; document and updated as the project is refined. Make sure everyone has access to the latest and greatest copy of the document too.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;8474&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 3 Elements and Attributes, Oh My!&lt;/h1&gt;
&lt;h2 id=&quot;7d8c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Structured Documentation&lt;/h2&gt;
&lt;p id=&quot;c947&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The data modules are structured documentation. Structured documents are made up of XML containers of information and data. Larger XML containers are built from adding smaller ones together and more containers are added until the struc&amp;shy;ture is complete. These XML containers are called &amp;ldquo;Elements&amp;rdquo; and each element has one or more attributes.&lt;/p&gt;
&lt;p id=&quot;a905&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The completed structure is what we have always delivered to the client. A master set of documentation providing information and guidance to maintain whatever it is that was purchased.&lt;/p&gt;
&lt;p id=&quot;71a7&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;It may be awkward at first to understand, but XML does not DO anything. Here&amp;rsquo;s a short example of an XML note.&lt;/p&gt;
&lt;p id=&quot;3d90&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;note&amp;gt;&lt;/p&gt;
&lt;p id=&quot;05c8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;to&amp;gt; Rhonda &amp;lt;/to&amp;gt;&lt;/p&gt;
&lt;p id=&quot;072c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;from&amp;gt; John &amp;lt;/from&amp;gt;&lt;/p&gt;
&lt;p id=&quot;7582&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;heading&amp;gt; Reminder &amp;lt;/heading&amp;gt;&lt;/p&gt;
&lt;p id=&quot;f1cc&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;body&amp;gt; You owe me a dollar &amp;lt;/body&amp;gt;&lt;/p&gt;
&lt;p id=&quot;361b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;/note&amp;gt;&lt;/p&gt;
&lt;p id=&quot;1779&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The note is called a &amp;ldquo;structured document&amp;rdquo; because it has the structure of heading and body. It has sender information, the note has receiver information. But still, the XML does not DO anything. XML is just information wrapped in &amp;ldquo;tags&amp;rdquo;. For those who know that HTML is how web pages are built, the HTML was designed to dis&amp;shy;play the data with focus on how the data looks, the XML was designed to carry data, with a focus on how the data is defined.&lt;/p&gt;
&lt;p id=&quot;db9f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML structure keeps it simple. It simplifies data sharing. It simplifies data transport. It eliminates the problems of incompatible systems and upgrades. The XML pro&amp;shy;vides a means to store data in plain text format. This provides a software and hard&amp;shy;ware independent way of storing, retrieving and sharing the data. For this reason, XML makes it easier to expand and update to new operating systems, new applica&amp;shy;tions or new browsers without loosing any data. And it all starts with a container called a &amp;ldquo;data module&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&quot;a138&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Containers&lt;/h2&gt;
&lt;p id=&quot;0f57&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Data Modules are made of container elements. In XML the container is the area enclosed by the beginning and ending brackets and looks like this &amp;lt;container&amp;gt;. If you right-mouse click on an XML document you can choose to open the document using WordPad..&lt;/p&gt;
&lt;p id=&quot;1894&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;One of the more common container elements is the &amp;lt;Figure&amp;gt; element. The figure element must contain not only the graphic image but it also needs a list of attributes for the figure, such as the file name of the graphic, the figure title, etc.&lt;/p&gt;
&lt;p id=&quot;565c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Because the figure element contains other elements is it called a Container Element. Like Russian Stacking Dolls, container elements can contain smaller and smaller other elements.&lt;/p&gt;
&lt;h2 id=&quot;b5e2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Elements&lt;/h2&gt;
&lt;p id=&quot;ad34&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Elements have &amp;lsquo;names&amp;rsquo; and the name describes the type of data they contain. Going back to the example of the &amp;lt;person&amp;gt; element. As you would expect, the data con&amp;shy;tains information about the person.&lt;/p&gt;
&lt;p id=&quot;b468&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Some elements are considered &amp;ldquo;containers&amp;rdquo; because they contain more than one piece of information. Typically they hold more detailed data, or attributes about the data. The attributes stored in a data element are sometimes called &amp;ldquo;child elements&amp;rdquo; because they are children of the main element.&lt;/p&gt;
&lt;p id=&quot;0b08&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Look at &amp;lt;person&amp;gt; as an element, or container. The attributes of a person could be they are female, her first name is Anna and her last name is Smith.&lt;/p&gt;
&lt;h2 id=&quot;68a0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Attributes&lt;/h2&gt;
&lt;p id=&quot;7aa6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Attributes provide the details about the element.&lt;/p&gt;
&lt;p id=&quot;96e3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Consider the &amp;lt;date&amp;gt; element. The attributes are &amp;ldquo;month&amp;rdquo;, &amp;ldquo;day&amp;rdquo; and &amp;ldquo;year&amp;rdquo;. But &amp;lt;date&amp;gt; can be formatted in many different ways. Some places write Jan 07, 2021 while other places write 07 JAN 21, and it could also be seen as January 7, 2021. Or even 01/07/2021. You know what I mean.&lt;/p&gt;
&lt;p id=&quot;46f0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Because there are many ways to enter the same information there are restrictions on the values. Th next figure is an example of an element named &amp;ldquo;initials&amp;rdquo; who is restricted to three capital letters.&lt;/p&gt;
&lt;p id=&quot;abf1&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;No, you don&amp;rsquo;t have to know how to code. But you do have to know the rules of enter&amp;shy;ing data. And with each restriction there is a rule. The rule in this instance means that you have to enter the text as three all capital letters.&lt;/p&gt;
&lt;p id=&quot;19d0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For creating data modules, the most important things to remember are the fact that each data module has a set of elements and attributes. Some elements and their attributes are seen as content, while other elements and their attributes are not seen by the user. A specific string of elements creates the Data Module Code (DMC) &amp;mdash; the &amp;ldquo;name&amp;rdquo; of the data module. And finally, some elements and attributes are man&amp;shy;datory (M) while others are optional (O). Those are the basics to create any data module.&lt;/p&gt;
&lt;p id=&quot;f822&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Note too that not all elements are in every data module. This next figure shows the list of element and attribute names with an &amp;ldquo;x&amp;rdquo; indicating which data module it can be used in. For example, a &amp;lt;checkListProcedure&amp;gt; is only found in the Checklist Data Module. However, the element &amp;lt;commonInfoDescrPara&amp;gt; can be used in the Procedure, Fault, Checklist and Process Data Modules.&lt;/p&gt;
&lt;p id=&quot;0c25&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;But before we get into the details of creating a data module, there are some other terms and definitions that useful to know.&lt;/p&gt;
&lt;h2 id=&quot;047e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Cardinality&lt;/h2&gt;
&lt;p id=&quot;0525&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Cardinality is an important restriction for an element. It constraints the number of instances (cardinality) that an element can appear in an XML document. In other words Cardinality sets the number of times you can use an element.&lt;/p&gt;
&lt;p id=&quot;05db&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Cardinality is specified by using &amp;ldquo;minOccurs&amp;rdquo; and &amp;ldquo;maxOccurs&amp;rdquo; attributes. And if we do not specify minOccurs or maxOccurs, the default value is 1. That means once. There can only be one and only one occurrence of the element and it is man&amp;shy;datory.&lt;/p&gt;
&lt;h2 id=&quot;d0b3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Namespaces&lt;/h2&gt;
&lt;p id=&quot;2bb9&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Namespaces are names given to specific groups of schema. For example, if we had a schema for purchase orders, we might want names spaces for the international pur&amp;shy;chase orders to separate them from state or regional purchase orders.&lt;/p&gt;
&lt;p id=&quot;02f7&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;If you look under the hood, schema elements that are associated with a namespace have the prefix such as xsd.&lt;/p&gt;
&lt;h2 id=&quot;8dbf&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Extensible Markup Language (XML)&lt;/h2&gt;
&lt;p id=&quot;1240&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML is not new. It was created in 1996 I kid you not. It is an &amp;ldquo;open standard&amp;rdquo; which means it&amp;rsquo;s free to use. But that also means it is free for everyone to interpret the code in a way that suits their needs best. Consider yourself warned.&lt;/p&gt;
&lt;p id=&quot;55e3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;XML syntax can be read by hundreds of applications including RSS, Atom, SOAP, SVG, XHTML and even Word. I can hear you now, &amp;ldquo;here&amp;rsquo;s a quarter&amp;hellip;&amp;rdquo;&lt;/p&gt;
&lt;p id=&quot;2335&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The actual document for XML comes in two parts: the markup and content. A whole chapter is dedicated to this later on.&lt;/p&gt;
&lt;p id=&quot;37a8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The first thing for Technical Writers and Illustrators to know is that XML is a &amp;ldquo;tree hierarchy&amp;rdquo;. The Reader&amp;rsquo;s Digest Big Print version of this means that all of the files have to be kept to be inside the same electronic file folder. There cannot be a sepa&amp;shy;rate file folder for &amp;ldquo;illustrations&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&quot;3fdf&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Common Source Data Base (CSDB)&lt;/h2&gt;
&lt;p id=&quot;3cfa&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Because there are so many pieces of the XML puzzle that combine to make a docu&amp;shy;ment, it is necessary to house the complete palette of elements, illustrations and the schema in a database. The aim of the CSDB is to provide a user friendly automatic process to build the documentation. Oh excuse me, the proper term is called a Pub&amp;shy;lication Module (PM). It&amp;rsquo;s a more accurate description really. The final product is more than just a document or set of documents.&lt;/p&gt;
&lt;h2 id=&quot;86b4&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Document Object Model (DOM) Parser&lt;/h2&gt;
&lt;p id=&quot;a63f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The DOM defines the standard for accessing and manipulating documents. It was established by the W3C, the World Wide Web Consortium. The people who brought you the internet.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/World_Wide_Web_Con&quot;&gt;https://en.wikipedia.org/wiki/World_Wide_Web_Con&lt;/a&gt;&amp;shy;sortium.&lt;/p&gt;
&lt;p id=&quot;b185&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;In simplified English, this means that .XML documents are &amp;ldquo;read&amp;rdquo; by a &amp;ldquo;parser&amp;rdquo;. Just as Word is used to read .doc files, and Internet Explorer and Google Chrome web browsers are used to view files on the internet, a Parser is used to read the XML files.&lt;/p&gt;
&lt;h2 id=&quot;70e8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Data Module Requirements List (DMRL)&lt;/h2&gt;
&lt;p id=&quot;6136&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The data module requirements list defines the data modules to be created. It is the &amp;ldquo;intended content list&amp;rdquo; for the data base. This usually becomes the con&amp;shy;tractual document, the list of deliverables between the technical writers/illustrators and the documentation owner.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;9bfc&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 4 Schema&lt;/h1&gt;
&lt;h2 id=&quot;065b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;When a Plan Comes Together&lt;/h2&gt;
&lt;p id=&quot;8d3e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This chapter provides an overview of the elements and attributes specifically to cre&amp;shy;ate the description and process data schema. As you recall, a schema is a combined set of elements Many more element combos exist than are presented here. And the descriptions of the schema presented in this book provide enough information to get your feet wet, but not enough to make you competent at S1000D requirements. This book was never intended to provide everything you need to know. The pur&amp;shy;pose is to give you enough knowledge to know how creating an XML document is way different from creating a document in word.&lt;/p&gt;
&lt;h2 id=&quot;8075&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Pictures are Worth a Thousand Words&lt;/h2&gt;
&lt;p id=&quot;af8b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The following demonstrates how elements are shown as a picture. Figure 1 shows an example of the basic parent element &amp;lt;dmodule&amp;gt;. It is a container element in the &amp;lt;identAndStatusSection&amp;gt; of a data module and contains address and other identity elements. Graphical illustrations of an element provide the most amount of infor&amp;shy;mation about any element in the smallest amount of space. As they say &amp;ldquo;pictures are worth a thousand words&amp;rdquo;. So now you know how to interpret an element by just looking at a picture of one.&lt;/p&gt;
&lt;p id=&quot;dd19&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is where things get interesting. Patiently we will start with the elements and attributes that are includes in every data module. Then we will address the elements and attributes specifically for a Descriptive and Procedural modules. We chose the Descriptive and Procedural type modules because they are used so often.&lt;/p&gt;
&lt;h2 id=&quot;81bb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;The Element of Surprise&lt;/h2&gt;
&lt;p id=&quot;5fce&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Hopefully there will be no surprises. Now for descriptions of some elements. We start with the &amp;lt;dmodule&amp;gt; element because it is the first element at the top of every data module.&lt;/p&gt;
&lt;h2 id=&quot;6225&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;dmodule&lt;/h2&gt;
&lt;p id=&quot;30d6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;One of the first decisions is what type of data module is applicable. Standardization of Data Modules were created by piecing together smaller frequently used schema. These are the basic data modules, sometimes written dmodule, or DM.&lt;/p&gt;
&lt;p id=&quot;7e26&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Basic data module types are named: &amp;ldquo;crew module&amp;rdquo;, &amp;ldquo;Description Module&amp;rdquo;, &amp;ldquo;Illus&amp;shy;trated Parts Data Module&amp;rdquo;, &amp;ldquo;Procedural Module&amp;rdquo; to name a few. Start with the dmodule type that best describes the data.&lt;/p&gt;
&lt;p id=&quot;1bc2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Let&amp;rsquo;s look at a data module to see what it looks like under the hood. The following is an illustration of a Procedural Module. The identandStatusSection is a container type element. It contains the identExtension and the dmCode.&lt;/p&gt;
&lt;p id=&quot;fa60&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Remember opening the wooden Russian Nesting Doll? In this case the nesting dolls are small schema nested inside of other schema inside other schema and the con&amp;shy;tainer is called the Data Module.&lt;/p&gt;
&lt;p id=&quot;3cff&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;And remember that each container element has a set of attributes to go with it. The required attributes are indicated by the red boxes in the illustration.&lt;/p&gt;
&lt;p id=&quot;cdb3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Next let&amp;rsquo;s take a look at a few important elements. I&amp;rsquo;ll show the elements this time in the form of a table instead of an illustration so you can see and example of the attri&amp;shy;butes and what they mean.&lt;/p&gt;
&lt;h2 id=&quot;2507&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;dmCode&lt;/h2&gt;
&lt;p id=&quot;801a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The data module code is essentially a code to tell you what is inside the data module without having to open it. It must be a unique identifer. There can be no duplicates. The dmCode says it all &amp;mdash; what type of data module is used, what stage of disassem&amp;shy;bly it is in, where it is located and other information.&lt;/p&gt;
&lt;p id=&quot;5df6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The &amp;lt;dmCode&amp;gt; uses the attributes to form part of the unique identifier and it is called the data module code.&lt;/p&gt;
&lt;p id=&quot;49e2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The following provides an example of the dmCode. These attributes are at the top of the data module. They describe what information is contained within the data module.&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_yAejq7MnFAm_c96Q4qqd3A.png&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;701&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mlPzJ/btrBFcRdbGR/0EeDQT43T3K7Sx3HxlJUB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mlPzJ/btrBFcRdbGR/0EeDQT43T3K7Sx3HxlJUB1/img.png&quot; data-alt=&quot;dmCode&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mlPzJ/btrBFcRdbGR/0EeDQT43T3K7Sx3HxlJUB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmlPzJ%2FbtrBFcRdbGR%2F0EeDQT43T3K7Sx3HxlJUB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;701&quot; data-filename=&quot;1_yAejq7MnFAm_c96Q4qqd3A.png&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;701&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;dmCode&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&quot;bcf6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Schema&lt;/h2&gt;
&lt;p id=&quot;f947&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For our purposes, a Schema is a small set of elements and attributes that suit our needs and we assign a name to it. Just like playing poker certain hands are given names like &amp;ldquo;Royal Flush&amp;rdquo; or &amp;ldquo;Straight Flush&amp;rdquo;, the XML world has sets of elements and attributes they define for specific uses. Publishers use the DocBook schema or Pub&amp;shy;lishing Requirements for Industry Standard Metadata (PRISM). Vector images use the schema called Scalable Vector Graphics (SVG). Graphical User Interfaces (GUIs) schemas as Extensive Application Markup Language for Java (FXML) or XML User Interface Language (XUL). People who create forms use XForms.&lt;/p&gt;
&lt;p id=&quot;322d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;A schema for a document describing a website defines a website element, a webpage element, and other elements that describe content divisions within any page on that site.&lt;/p&gt;
&lt;p id=&quot;919a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;In the bike example the schema looks like this:&lt;/p&gt;
&lt;p id=&quot;ed01&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;?xml version=&amp;rdquo;1.0&quot; encoding=&amp;rdquo;utf-8&quot;?&amp;gt;&amp;lt;dmodule xmlns:dc=&amp;rdquo;&lt;a href=&quot;http://www.purl.org/dc/elements/1.1/&quot;&gt;http://www.purl.org/dc/elements/1.1/&lt;/a&gt;&quot; xmlns:rdf=&amp;rdquo;&lt;a href=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&lt;/a&gt;&quot; xmlns:xlink=&amp;rdquo;&lt;a href=&quot;http://www.w3.org/1999/xlink&quot;&gt;http://www.w3.org/1999/xlink&lt;/a&gt;&quot; xmlns:xsi=&amp;rdquo;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&quot; xsi:noNamespaceSchemaLocation=&amp;rdquo;&lt;a href=&quot;http://www.s1000d.org/S1000D_4-2/flat_schema/learning.xsd&quot;&gt;http://www.s1000d.org/S1000D_4-2/flat_schema/learning.xsd&lt;/a&gt;&quot;&amp;gt; &amp;lt;rdf:Description&amp;gt; &amp;lt;dc:creator&amp;gt;U8025&amp;lt;/dc:creator&amp;gt; &amp;lt;dc:title&amp;gt;Bicycle &amp;mdash; Performance support&amp;lt;/dc:title&amp;gt; &amp;lt;dc:subject&amp;gt;Bicycle &amp;mdash; Performance support&amp;lt;/dc:subject&amp;gt;&lt;/p&gt;
&lt;p id=&quot;48d0&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;There is a schema for a description module and a schema for a procedural module. There is a specific schema to create a checklist and another schema for maintenance plan&amp;shy;ning information. The most important thing to remember is that each schema has a set of mandatory elements and attributes. The information and the order in which the information is presented is set in stone.&lt;/p&gt;
&lt;p id=&quot;0800&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Schema information is probably more than you wanted to know, so here is the important parts to remember: There are three parts to digital documentation technology. The XML element names define the content. In HTML for the web browsers, these are called &amp;ldquo;tags&amp;rdquo;. The second part is called the metadata. This is the data &amp;ldquo;under the hood&amp;rdquo; that allows the search engines to find the content. The final part of the equation are the style sheets. The style sheets adapts document for the various reading devices (tables, smartphones, e-readers, etc).&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;797a&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 5 What is an e-Book?&lt;/h1&gt;
&lt;h2 id=&quot;7aff&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;ePublishing&lt;/h2&gt;
&lt;p id=&quot;40e5&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Electronic publishing is the process of issuing the modules and associated data in machine-readable form rather than on paper. Because the content is electronic it may be distributed over the internet and users can read the material on a wide rage of electronic and digital devices. The names of ePublishers is available to anyone with a Browser to search for &amp;ldquo;epublisher&amp;rdquo; and access to the internet.&lt;/p&gt;
&lt;h2 id=&quot;c2aa&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;apps&lt;/h2&gt;
&lt;p id=&quot;1d5b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Way back in the dark ages of 2010 native software applications were required to reside on each platform. Customers are driving the manufacturer&amp;rsquo;s toward universal device, but we are not there yet.&lt;/p&gt;
&lt;p id=&quot;b1dd&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Amazon has Kindle. Everybook, Inc has an Everybook Dedicated Reader, the Franklin eBookman has a device similar to the Palm Pilots and phones, but with a larger screen. Heibook combines the XML based,OEB-compliant eBook reader with an MP3 player and games with an audio recordder. FXPALs Xlibris makes a high resolution tablet with a pen. Nuvomedia has an ebook device called the Rocket eBook. There are many more.&lt;/p&gt;
&lt;h2 id=&quot;f8e9&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Format&lt;/h2&gt;
&lt;p id=&quot;a430&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;One of the more common file formats for electronic publishing is e-pub. It is a free and open standard available in may publishing programs. Another one is .folio which is used by Adobe for the iPad tablet and apps.&lt;/p&gt;
&lt;p id=&quot;d478&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Interactive Electronic Technical Manuals (IETMs) are used by the military. The mil&amp;shy;itary specification MIL-STD-40051 is the perparation of Digital Technical Inforam&amp;shy;tion for Interactive Electronic Technical Manuals (IETMs). Those standards cover everything except aviation.&lt;/p&gt;
&lt;p id=&quot;5512&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;In computing the XML is a markup language that defines a set of rules for encoding the documents and its information into a format that is both human-readable and machine-readable.&lt;/p&gt;
&lt;p id=&quot;b778&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;S1000D is an international specification for technical publications for the procure&amp;shy;ment and production of technical publications for aerospace, defense and capital-intensive equipment applications. The S1000D group combined the requirements for the maintenance and operations document into a common source. They utilized the existing XML to create specified elements and attributes for procedures and pro&amp;shy;cesses. This is the origin for the data module types used today.&lt;/p&gt;
&lt;h2 id=&quot;88a4&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;XML Parcer&lt;/h2&gt;
&lt;p id=&quot;8dc3&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;An XML Parser &amp;ldquo;reads&amp;rdquo; the document. When we said that the XML is read by both machines and people, this is the machine part of reading the XML. The parcer pro&amp;shy;vides the means to enter a new data module, access existing data or modify the data. Essentially, it parces the data into separate parts: the data, illustrations and the struc&amp;shy;ture. There are entire books written regarding how to implement the various pars&amp;shy;ers. We do not need to go into any of that here.&lt;/p&gt;
&lt;p id=&quot;62f1&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The important thing to remember for writers and illustrators about an XML Parcer is that it performs a validation. It checks to verify that a &amp;ldquo;procedural schema&amp;rdquo; matches the requirements defined at the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.w3.org/XML/XMLSchema/&quot;&gt;http://www.w3.org/XML/XMLSchema/&lt;/a&gt;. Else, the document &amp;ldquo;fails&amp;rdquo; and isn&amp;rsquo;t even read into the system. So check your docu&amp;shy;ment against the applicable schema requirements. Just exporting a document from MicroSoft Word into .XML doesn&amp;rsquo;t cut it. Not even close.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;ba63&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 6 Technical Writing&lt;/h1&gt;
&lt;p id=&quot;e645&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is how manuals are usually written: Tech writers and Illustrators create a first draft of the information based on initial specifications &amp;mdash; what the customer said they wanted and what we said we would deliver.&lt;/p&gt;
&lt;p id=&quot;449f&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Of course, by the time it&amp;rsquo;s all said and done, the final approved released documenta&amp;shy;tion barely resembles the first draft. The first draft is a total waste of time. As part of the frustrating review process, engineers walk and talk while they recant their adventures of 20 years ago when somebody cared. Tech writers assemble the drafts based on the released drawings, which engineers promptly rip apart and say those were preliminary drawings. You&amp;rsquo;d think that by P27 the &amp;ldquo;preliminary&amp;rdquo; draft would be close. Not so much. And the process starts over again. Finally, the document is published&lt;/p&gt;
&lt;p id=&quot;b436&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;That part hasn&amp;rsquo;t changed. sorry. It has just gotten more complicated.&lt;/p&gt;
&lt;h2 id=&quot;bb75&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Structured Documents&lt;/h2&gt;
&lt;p id=&quot;36cb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;One of the reasons to migrate from the old style creating documents using Micro&amp;shy;Soft Word to a structured framework is work efficiency. There is a simple miscon&amp;shy;ception of how tech writers spend (or should spend) their time. This prevailing notion believes that &amp;ldquo;writers,&amp;rdquo; spend a large part of their time managing and pub&amp;shy;lishing information and most of the time &amp;ldquo;writing&amp;rdquo;. Actually, very little time is spent &amp;ldquo;writing&amp;rdquo;. Most of the time is spent looking for information, or waiting for information from someone else. Because of this misconception, it is hard for some to understand how efficiently a properly-designed structured authoring environ&amp;shy;ment could be. Technical writing has never been about how fast you type. It has always been about how fast you can compose and organize the content to meet all of the standards and be understood by the end-users.&lt;/p&gt;
&lt;p id=&quot;3e9d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The cornerstone of any project is dependent upon the client&amp;rsquo;s understanding and participation in that implementation. The project to move from flat files to an object oriented database structure is no different.&lt;/p&gt;
&lt;p id=&quot;5100&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;What makes S1000D far superior to just the written word is the data struc&amp;shy;ture for a Common Source Data Base (CSDB). The closest way I can to describe the difference is that a word document is formed based on a for&amp;shy;matting hierarchy. The arrangement of the document is based on the rules of topics broken down into smaller topics. The topics used to be called &amp;ldquo;First Order Headings&amp;rdquo;, and topic underneath that was called a &amp;ldquo;Second Order Heading&amp;rdquo;. Each of these nested topics would have a formatting assigned to them. The First Order Headings were big and bold. The Second Order Headings were smaller and maybe indented a little. You get the idea&lt;/p&gt;
&lt;p id=&quot;86c7&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Common Source Data Base is a structure for data more like a map or a tree. In this structure, &amp;ldquo;Food&amp;rdquo; is called the &amp;ldquo;parent&amp;rdquo;. &amp;ldquo;Meat&amp;rdquo; and &amp;ldquo;Fruit&amp;rdquo; are called the &amp;ldquo;child&amp;rdquo;. And in a data base, a numerical id would be assigned to each &amp;ldquo;node&amp;rdquo;. Databases are used when there is a lot of data so that when it is populated with all the data someone can query the database to display only the information they need to see.&lt;/p&gt;
&lt;h2 id=&quot;c333&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Drafts&lt;/h2&gt;
&lt;p id=&quot;684e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Drafts were sent out as &amp;ldquo;PDF&amp;rdquo; files and reviewed by the subject matter experts. They ignored these drafts whenever possible. I don&amp;rsquo;t think anyone likes to read anymore&lt;/p&gt;
&lt;p id=&quot;b935&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;With S1000D drafts are designated using the attribute &amp;lsquo;inwork&amp;rsquo;&lt;/p&gt;
&lt;p id=&quot;4bed&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The attribute &amp;lsquo;inwork&amp;rsquo; for the element &amp;lt;issueInfo&amp;gt; is used to track and con&amp;shy;trol the intermediate drafts until the final released issue. The initial &amp;ldquo;inwork&amp;rsquo; number Shall be set to &amp;ldquo;01&amp;rdquo; and Shall be incremented with every change to the data module.&lt;/p&gt;
&lt;h2 id=&quot;b73d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Tracking Changes&lt;/h2&gt;
&lt;p id=&quot;c3e6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Publications have always involved the process of updating and releasing publica&amp;shy;tions with changes, revisions, deleted text, reinstated stuff. The frequency of updat&amp;shy;ing and releasing publications was decided by project&lt;/p&gt;
&lt;p id=&quot;6939&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Changes were designated using &amp;ldquo;Change Bars&amp;rdquo;, the big 4.5 point black bar that was posted next to the stuff that changed&lt;/p&gt;
&lt;p id=&quot;5c6a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Reasons for changes are summarized and recorded in the identification and status section. We used to debate if the change bar threshold was more than 50% of the page, which made it hard to read, then we marked the footer as the whole page was &amp;ldquo;revised&amp;rdquo; and removed the change bars.&lt;/p&gt;
&lt;p id=&quot;940b&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;By the time we got to revision Z, Roger lost all his hair. It had become too unmanage&amp;shy;able.&lt;/p&gt;
&lt;p id=&quot;97f5&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For S1000D all of the changes, except for editorial changes, must be marked and provided a reason for update. The reason for update text is used to automatically generate the Revision Summary for the technical manual (TM)&lt;/p&gt;
&lt;p id=&quot;6524&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;And if you think about it, it makes perfectly good sense that Changes can only be marked for issues that are numbered 002 and above. There are lots of rules in the game of S1000D. This one is just the beginning&lt;/p&gt;
&lt;p id=&quot;21fd&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Changes to documentation requires using &amp;ldquo;elements&amp;rdquo;. The change element looks like this: &amp;lt;reasonForUpdate&amp;gt;. The attributes, or choices for that element, are &amp;lsquo;changeMark&amp;rsquo;, &amp;lsquo;changeType&amp;rsquo;, and &amp;lsquo;reaonForUpdateRefIDs&amp;rsquo;.&lt;/p&gt;
&lt;h2 id=&quot;3189&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;ATA iSpec 2200 vs S1000D&lt;/h2&gt;
&lt;p id=&quot;2b35&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is for those who are writing specifically for the aircraft industry. If this is not you, just skip it an move along.&lt;/p&gt;
&lt;h2 id=&quot;dbf2&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;ATA iSpec 2200&lt;/h2&gt;
&lt;p id=&quot;2b3d&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The group previously known as the Air Transport Association became the Airlines for America. The document they provided, the ATA iSpec 2200, provided the rec&amp;shy;ommended specifications for the content, structure and deliverables to meet the communication requirements, those being the physical, electronic and future tech&amp;shy;nologyof aircraft product technical information.&lt;/p&gt;
&lt;p id=&quot;d6a7&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The objective of the iSpec 2200 was to minimize the cost and effort and exchange of information to meet the airline operational needs. the iSpec 2200 is a document-centered standard.&lt;/p&gt;
&lt;p id=&quot;fd6a&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The iSpec 2200 provides the Document Type Definitions. The following is a partial list:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;a95d&quot; data-selectable-paragraph=&quot;&quot;&gt;Aircraft Maintenance Manual&lt;/li&gt;
&lt;li id=&quot;450f&quot; data-selectable-paragraph=&quot;&quot;&gt;Aircraft Illustrated Parts Catalog&lt;/li&gt;
&lt;li id=&quot;abbc&quot; data-selectable-paragraph=&quot;&quot;&gt;Component Maintenance Manual&lt;/li&gt;
&lt;li id=&quot;c45a&quot; data-selectable-paragraph=&quot;&quot;&gt;Consumable Products Manual&lt;/li&gt;
&lt;li id=&quot;78f1&quot; data-selectable-paragraph=&quot;&quot;&gt;Flight Crew Operations Manual&lt;/li&gt;
&lt;li id=&quot;6dbb&quot; data-selectable-paragraph=&quot;&quot;&gt;Maintenance Planning Document&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;b1d6&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;S1000D&lt;/h2&gt;
&lt;p id=&quot;8787&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The s1000D is a data information standard. The move from a document to a data-cen&amp;shy;tered source of information creates a modular, bite size information. The informa&amp;shy;tion resides as modules in a Common Source Database (CSD). The database is the repository for the storage of all of the document pieces required to produce the technical publications for a project.&lt;/p&gt;
&lt;p id=&quot;bcc5&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The S1000D basic document is a data module. A data module is the minimal infor&amp;shy;mation document for exchange of information. It is the smallest and standalone information unit conveying a particular type of information about specific parts of the Product.&lt;/p&gt;
&lt;p id=&quot;88cb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;There is a Schema for each type of technical document unit. Examples of schemas are as follows:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;7ad6&quot; data-selectable-paragraph=&quot;&quot;&gt;proced.xsd for Procedures&lt;/li&gt;
&lt;li id=&quot;abcd&quot; data-selectable-paragraph=&quot;&quot;&gt;descript.xsd for Descriptions&lt;/li&gt;
&lt;li id=&quot;dbcb&quot; data-selectable-paragraph=&quot;&quot;&gt;sb.xsd for Service Bulletins&lt;/li&gt;
&lt;li id=&quot;7633&quot; data-selectable-paragraph=&quot;&quot;&gt;container.xsd for Container Data Modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;a86c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Common Information Repository (CIR) Data Module&lt;/h2&gt;
&lt;p id=&quot;8b99&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;One of the best features of modular text is that segments can be re-used. And if the information is updated, it is updated everywhere at the same time.&lt;/p&gt;
&lt;p id=&quot;920e&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The CIR is the library of standard text. For example, it would be a set of warnings. Warn-0525 could be &amp;ldquo;DO NOT GET CLOSE TO&amp;hellip;.&amp;rdquo;&lt;/p&gt;
&lt;p id=&quot;f3be&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;An example of CIR is as follows:&lt;/p&gt;
&lt;p id=&quot;1fbc&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;commonRepository&amp;gt; &amp;lt;warningRepository&amp;gt; &amp;lt;warningSpec changeType=&amp;rdquo;modify&amp;rdquo;&amp;gt; &amp;lt;warningIdent warningIdentNumber=&amp;rdquo;warn-00525&quot;&amp;gt;&amp;lt;/warningIdent&amp;gt; &amp;lt;warningAndCautionPara&amp;gt;Make sure that the bulb is cool before you replace it.&amp;lt;/warningAndCautionPara&amp;gt; &amp;lt;/warningSpec&amp;gt; &amp;hellip; &amp;lt;/warningRepository&amp;gt; &amp;lt;/commonRepository&amp;gt;&lt;/p&gt;
&lt;h2 id=&quot;f221&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Warnings Format&lt;/h2&gt;
&lt;p id=&quot;7e07&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The default heading WARNING must be in 12/14 pt bold, uppercase and under&amp;shy;lined centered on the width of the warning itself. This needs to be separated by 8 pt after the previous text paragraph. The actual warning text starts 8 pt AFTER the WARNING heading. Keep the WARNING heading and the actual warning text on the same page.&lt;/p&gt;
&lt;p id=&quot;8205&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The warning text must be in 10/11 pt bold, lowercase.&lt;/p&gt;
&lt;h2 id=&quot;4ef5&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Cautions Format&lt;/h2&gt;
&lt;p id=&quot;c9b8&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The default heading CAUTION must be in 12/14 pt bold, uppercase and NOT underlined centered on the width of the caution itself. This needs to be separated by 8 pt after the previous text paragraph. The actual warning text starts 8 pt AFTER the CAUTIONG heading. Keep the CAUTION heading and the actual caution text on the same page.&lt;/p&gt;
&lt;p id=&quot;8306&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The caution text must be in 10/11 pt NOT bold, lowercase.&lt;/p&gt;
&lt;h1 id=&quot;ec5d&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 7 The Descriptive Module&lt;/h1&gt;
&lt;h2 id=&quot;78a7&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;Under the Hood&lt;/h2&gt;
&lt;p id=&quot;0717&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;For demonstration purposes, we are starting with the &amp;ldquo;descriptive Module&amp;rdquo;. Every data module has two parts:&lt;/p&gt;
&lt;p id=&quot;fca4&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The schema is from the S1000D organization. At the top of the data module is a link to the URL&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.s1000d.org/S1000D_4-0/xml_schema_flat/descript.xsd&quot;&gt;http://www.s1000d.org/S1000D_4-0/xml_schema_flat/descript.xsd&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;where it reads the schema file.&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_Q0fWxSDqeuZ-scpi1GobOQ.png&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crHnAq/btrBzV4rAuq/pPGSBMWquSoNAkwiz9NhE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crHnAq/btrBzV4rAuq/pPGSBMWquSoNAkwiz9NhE1/img.png&quot; data-alt=&quot;Translation and Schema XML Text&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crHnAq/btrBzV4rAuq/pPGSBMWquSoNAkwiz9NhE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrHnAq%2FbtrBzV4rAuq%2FpPGSBMWquSoNAkwiz9NhE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;342&quot; height=&quot;303&quot; data-filename=&quot;1_Q0fWxSDqeuZ-scpi1GobOQ.png&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Translation and Schema XML Text&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p id=&quot;6429&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;Next we introduce each of the required elements in the order in which the data is entered. The Data Module Code (DMC) is automatically created and placed at the top of the document, which is also a requirement of the S1000D.&lt;/p&gt;
&lt;h1 id=&quot;4824&quot; data-selectable-paragraph=&quot;&quot;&gt;identAndStatusSection&lt;/h1&gt;
&lt;p id=&quot;f816&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The &amp;lt;identAndStatusSection&amp;gt; provides the identity for the type of module or work that is described and the status of the data module.&lt;/p&gt;
&lt;p id=&quot;41bc&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The following describes each of the component elements of the &amp;lt;identAndStatus&amp;shy;Section&amp;gt;.&lt;/p&gt;
&lt;h1 id=&quot;b9f6&quot; data-selectable-paragraph=&quot;&quot;&gt;dmAddress and dmIdent&lt;/h1&gt;
&lt;p id=&quot;4808&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;The &amp;lt;dmAddress&amp;gt; is a container element for another container element &amp;lt;dmIdent&amp;gt; and the element &amp;lt;dmIdent&amp;gt; is looking for information regarding the identity for this data module.&lt;/p&gt;
&lt;h1 id=&quot;2c53&quot; data-selectable-paragraph=&quot;&quot;&gt;identExtension&lt;/h1&gt;
&lt;p id=&quot;ec30&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;This is one of the Business Rules you decided. The goal is to have a unique identifi&amp;shy;cation for the data modules. The &amp;lt;identExtension&amp;gt; establishes a unique subdomain for instance identification. In other words, this is the first identifier for the group of data modules.&lt;/p&gt;
&lt;p id=&quot;bac1&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;It has two attributes: The (M) means it is mandatory to enter the data.&lt;/p&gt;
&lt;p id=&quot;a9fb&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;-extensionProducer (M), is typically the CAGE code of the producer of the data module instance. Or it can be the unique number for the manual set.- extension&amp;shy;Code (M), the data module extended code. The value is decided by the data module producer.&lt;/p&gt;
&lt;p id=&quot;9379&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;dmCode&lt;/p&gt;
&lt;p id=&quot;a88c&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;is the basic identify code parameters.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;1a06&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 8 Illustrations&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;eaa1&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 9 Applicability&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;d692&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 10 Let&amp;rsquo;s Do This&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;5896&quot; data-selectable-paragraph=&quot;&quot;&gt;Chapter 11 Common Information Repositories&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;h1 id=&quot;c264&quot; data-selectable-paragraph=&quot;&quot;&gt;FAQ&lt;/h1&gt;
&lt;/div&gt;</description>
      <category>Blog</category>
      <category>s1000d</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/750</guid>
      <comments>https://drscg.tistory.com/750#entry750comment</comments>
      <pubDate>Mon, 9 May 2022 15:44:33 +0900</pubDate>
    </item>
    <item>
      <title>2019.08.30 - Elasticsearch의 시계열 데이터 쿼리 및 집계 작업</title>
      <link>https://drscg.tistory.com/740</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;일반적으로 Elasticsearch는 검색 엔진이며, Lucene 데이터베이스에 그 검색 인덱스를 유지합니다. 그러나 처음 시작된 이래 Elasticsearch는 그 자체가 고성능의 클러스터와 확장이 가능한 데이터 저장소로 진화해왔습니다. 그 색인 형식은 여전히 처음 시작되었던 때를 반영하지만, 모든 종류의 사용자가 모든 종류의 목적으로 이를 사용합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이러한 목적 중 하나는 시계열 데이터를 저장, 처리 및 검색하는 것입니다. 시계열 데이터는 정확한 타임스탬프와 연관되는 모든 데이터 요소를 특징으로 합니다. 가장 빈번하게는, 데이터 요소가 특정 시점에서 이루어진 일종의 측정을 나타냅니다. 이것은 주가일 수도 있고, 과학적인 관찰일 수도 있고, 서버의 로드일 수도 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;시계열 데이터의 취급에 특화된 몇 가지 데이터베이스 구현이 존재하지만, 시계열이 저장되고 쿼리되는 일반적인 형식은 없습니다. 이론적으로는 어떤 데이터베이스 엔진도 시계열 데이터를 취급하는 데 사용될 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;추상 형식으로, 시계열 데이터베이스 항목은 다음으로 이루어집니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;계열 이름&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;타임스탬프&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;값&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;계열에 대한 추가 정보를 포함하는 키-값 쌍 또는&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;태그&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;서버 모니터링 사용 사례에는, 언제나 시계열이 어느 호스트에 속하는지를 지정하는 하나의 키-값 쌍이 존재하게 됩니다. 그러나 더해질 수 있는 추가 정보는 어떤 것이든 될 수 있으며, 특정한 호스트 세트에 대한 메트릭을 요청하기 위해서만 나중에 사용될 수도 있습니다. 예제는 프로덕션 환경에 속하는 서비스나 특정 클라우드 서비스 제공자에서만 실행되는 인스턴스 등 구체적인 서비스를 실행하는 호스트가 될 것입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이것을 더 실용적으로 만들기 위해, Elasticsearch 쿼리를 사용하여 데이터에서 특정 시계열 정보를 걸러낼 수 있는 방법의 예제로 Metricbeat 데이터를 사용해 보겠습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;각 Metricbeat 문서에는 다음 정보가 포함됩니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;타임스탬프&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;실제 시계열 데이터&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;Metricbeat의 경우, 문서의 이 부분의 형식에 대해서는 Metricbeat 설명서에 설명되어 있습니다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;시스템&lt;/code&gt;&amp;nbsp;모듈의&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;cpu&lt;/code&gt;&amp;nbsp;메트릭 세트에 대해 더 자세히 알아보려면,&amp;nbsp;&lt;/em&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/metricbeat-metricset-system-cpu.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;메트릭 세트 설명서&lt;/em&gt;&lt;/a&gt;를 참조하세요.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;문서에 포함되어 있는 메트릭 그 자체에 대한 메타데이터 Metricbeat는 ECS 필드&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;event.module&lt;/code&gt;과&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;event.dataset&lt;/code&gt;를 사용하여 어느 Metricbeat 모듈이 문서를 생성했는지, 그리고 어느 메트릭 세트가 문서에 포함되어 있는지를 지정합니다.&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;이것은 시계열 데이터를 검색하려고 하기에 앞서, 어느 메트릭이 처음에 나타나는지를 찾아내는 데 도움이 될 수 있습니다.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;물리적인 호스트이든, 가상 머신이든, 아니면 Kubernetes pod나 Docker 컨테이너 같은 규모가 더 작은 항목이든, 인스턴스에 대한 메타데이터&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;이 메타데이터는&amp;nbsp;&lt;/em&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/introducing-the-elastic-common-schema&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;Elastic Common Schema&lt;/em&gt;&lt;/a&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;를 따르며 따라서 역시 ECS를 사용하는 다른 소스의 데이터와 일치될 수 있습니다.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제로, 이것은&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.cpu&lt;/code&gt;&amp;nbsp;메트릭 세트의 Metricbeat 문서가 어떻게 생겼는지를 보여줍니다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;_source&lt;/code&gt;&amp;nbsp;객체에 대한 인라인 주석은 어디에서 필드에 대한 더 자세한 정보를 찾을 수 있는지를 나타냅니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;ECE 설명서&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/ecs/1.0/ecs-field-reference.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;ECS 필드 참조&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;Metricbeat 설명서&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/exported-fields-common.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Metricbeat 공통 필드&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;system.cpu 메트릭 세트 설명서&lt;ul style=&quot;box-sizing: border-box; margin: 4px 0px 0px; background: none; list-style: none; padding: 6px 0px 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/exported-fields-system.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;시스템 필드&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/metricbeat-metricset-system-cpu.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;시스템 CPU 메트릭 세트&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;유의사항: 문서에는 가독성을 위해 JSON에 # 주석이 포함되어 있습니다.&lt;/em&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;metricbeat-8.0.0-2019.08.12-000001&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_doc&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;vWm5hWwB6vlM0zxdF3Q5&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T12:06:34.572Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ecs&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# ECS metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1.0.1&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;host&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# ECS metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;noether&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hostname&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;noether&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;architecture&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;x86_64&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;os&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;kernel&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;4.15.0-55-generic&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;codename&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bionic&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;platform&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ubuntu&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;18.04.3 LTS (Bionic Beaver)&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;family&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;debian&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;name&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;Ubuntu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;4e3eb308e7f24789b4ee0b6b873e5414&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;containerized&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;agent&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# ECS metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ephemeral_id&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;7c725f8a-ac03-4f2d-a40c-3695a3591699&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hostname&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;noether&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;e8839acc-7f5e-40be-a3ab-1cc891bcb3ce&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;8.0.0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;metricbeat&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;event&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# ECS metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;dataset&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;module&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;duration&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;725494&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;metricset&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# metricbeat metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;cpu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# metricbeat metadata &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# metricbeat time series data  &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;cpu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;softirq&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.0112&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;steal&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;cores&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;irq&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;idle&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6.9141&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;nice&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.7672&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.3024&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;iowait&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.0051&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.0808&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;요약하자면, Metricbeat 문서 내에는 시계열 데이터와 메타데이터가 섞여 있으며, 정확히 필요한 것을 검색하려면 문서 형식에 대한 구체적인 지식이 필요합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;대조적으로, 시계열 데이터를 처리, 분석 또는 시각화하고자 하는 경우, 데이터는 통상적으로 이처럼 표와 같은 형식이어야 합니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;lt;series&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;lt;timestamp&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;lt;key-value&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;pairs&lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
system.cpu.user.pct 1565610800000 0.843 host.name=”noether” 
system.cpu.user.pct 1565610800000 0.951 host.name=”hilbert” 
system.cpu.user.pct 1565610810000 0.865 host.name=”noether” 
system.cpu.user.pct 1565610810000 0.793 host.name=”hilbert” 
system.cpu.user.pct 1565610820000 0.802 host.name=”noether” 
system.cpu.user.pct 1565610820000 0.679 host.name=”hilbert”&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch 쿼리는 그러한 표에 대단히 근접한 형식의 시계열 데이터를 프로그래밍 방식으로 검색하는 데 도움이 될 수 있으며, 다음 예제는 이렇게 하는 방법을 보여줍니다. 쿼리를 가지고 직접 실험해보고 싶으시면, Elasticsearch 인스턴스와&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.cpu&lt;/code&gt;&amp;nbsp;및&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.network&lt;/code&gt;&amp;nbsp;메트릭 세트를 위해 데이터를 수집, 전송하는 실행 중인 Metricbeat 설치가 필요할 것입니다. Metricbeat에 대한 간단한 소개는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/metricbeat-getting-started.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;시작하기&lt;/a&gt;&amp;nbsp;설명서를 참조하세요.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Kibana의 Dev Tools 콘솔에서 모든 쿼리를 실행할 수 있습니다. 이전에 사용해보신 적이 없는 경우,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.3/console-kibana.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Kibana 콘솔 설명서&lt;/a&gt;에서 간단한 소개를 찾아보실 수 있습니다. 예제 쿼리에서 호스트 이름을 변경해야 한다는 점에 유의하세요.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;우리는 Metricbeat가 다음 기본 구성에 따라 설정된 것으로 가정합니다. 이것은 하루에 하나의 인덱스를 만들며, 이러한 인덱스에는 ‘&lt;em style=&quot;box-sizing: border-box;&quot;&gt;metricbeat-VERSION-DATE-COUNTER’&lt;/em&gt;라는 이름이 붙게 된다는 뜻입니다. 즉,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;metricbeat-7.3.0-2019.08.06-000009&lt;/code&gt;&amp;nbsp;같은 이름이 될 것입니다. 이러한 인덱스를 한 번에 쿼리하기 위해, 다음과 같이 와일드카드를 사용하겠습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;took&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;timed_out&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_shards&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;successful&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;skipped&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;failed&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;10000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;relation&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;gte&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;당연히, 이 쿼리는 하나의 쿼리에서 반환되는 Elasticsearch 문서 한도를 초과합니다. 실제 실행 횟수는 여기서 생략되었지만 결과를 스크롤하면서 주석이 달린 위의 문서와 비교해보고 싶으실 수도 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;모니터링되는 인프라의 크기에 따라, 엄청난 수의 Metricbeat가 있을 수 있지만, (기록된) 시간의 처음부터 시계열이 필요한 경우는 드뭅니다. 따라서 날짜 범위부터 시작해 보겠습니다. 이 경우에는 범위가 지난 5분간입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;range&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;gte&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;now-5m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;took&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;timed_out&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_shards&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;successful&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;skipped&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;failed&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;relation&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;eq&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 이것은 훨씬 더 관리하기 쉬운 크기입니다. 그러나, 이 쿼리가 실행되는 시스템은 보고하는 호스트가 단 하나 밖에 없으며, 따라서 프로덕션 환경에서는 실행 횟수의 수치가 여전히 대단히 높게 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;특정한 호스트에 대한 모든 CPU 데이터를 검색하려면, 처음에 미숙하게 시도하는 Elasticsearch 쿼리는 host.name과 metricset&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.cpu&lt;/code&gt;를 위한 필터를 추가하는 것이 될 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bool&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;filter&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;range&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;gte&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;now-5m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bool&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;should&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;match_phrase&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;host.name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;noether&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;match_phrase&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;event.dataset&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;took&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;timed_out&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_shards&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;successful&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;skipped&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;failed&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;relation&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;eq&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 쿼리는 여전히 대량의 문서를 반환하며, 모든 문서가&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.cpu&lt;/code&gt;&amp;nbsp;메트릭 세트에 대해 Metricbeat가 보낸 전체 데이터를 포함하고 있습니다. 몇 가지 이유로, 이것은 대단히 유용한 결과는 아닙니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;첫째로, 우리는 전체 기간에 걸쳐 모든 문서를 검색해야 할 것입니다. 우리가 구성된 한도에 도달하자마자, Elasticsearch는 한 번에 이것을 반환하지 않지 않고 그 순위를 매기려 할 것이며(이것은 우리 쿼리에는 적합하지 않습니다) 타임스탬프에 따라 정렬된 문서를 반환하지 않을 것입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;둘째로, 우리는 타임스탬프, 메트릭 값 몇 개, 그리고 어쩌면 일부 추가적인 메타데이터 필드 등 각 문서의 작은 부분에만 관심이 있습니다. Elasticsearch로부터 전체&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;_source&lt;/code&gt;를 반환한 다음, 쿼리 결과로부터 그 데이터를 골라내는 것은 대단히 비효율적입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이것을 해결하기 위한 한 가지 방법은 Elasticsearch&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;집계&lt;/em&gt;를 사용하는 것입니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;예제 1: CPU 사용률, 다운샘플링&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;우선, 날짜 히스토그램을 살펴보겠습니다. 날짜 히스토그램 집계는 시간 간격당 한 개의 값을 반환하게 됩니다. 반환된 버킷은 이미 시간을 기준으로 정렬되어 있으며, 데이터와 일치하는 간격 또는 버킷 크기가 지정될 수 있습니다. 이 예제에서는, Metricbeat가 기본값으로 10초마다 시스템 모듈로부터 데이터를 전송하기 때문에 간격 크기가 10초로 선택되어 있습니다. 최상위&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;size: 0&lt;/code&gt;&amp;nbsp;매개변수는 우리가 더 이상 실제 적중 횟수에 관심이 없고 집계에만 관심이 있음을 지정하고 있으며, 따라서 어떤 문서도 반환되지 않을 것입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;fixed_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;10s&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;relation&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;eq&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:03:20.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565615000000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:03:30.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565615010000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:03:40.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565615020000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;각 버킷마다, 이것은&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;키&lt;/code&gt;에서 타임스탬프(사람이 읽을 수 있는 날짜/시간 문자열을 포함하는 유용한&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;key_as_string&lt;/code&gt;)와 최종적으로 버킷에 들어있는 문서의 수를 반환합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;doc_count&lt;/code&gt;는 1입니다. 버킷 크기가 Metricbeat의 보고 주기와 일치하기 때문입니다. 그렇지 않다면 이것은 대단히 유용하지 않습니다. 실제 메트릭 값을 보기 위해, 또 다른 집계를 추가하겠습니다. 이 단계에서 우리는 이 집계가 무엇이 될 것인지 결정해야 합니다. 숫자 값,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;avg&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;min&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;max&lt;/code&gt;는 좋은 후보입니다. 그러나 버킷당 문서 하나만 갖는 한, 무엇을 선택하든 사실상 중요하지 않습니다. 다음 예제는 10초 길이의 버킷 내에서 메트릭&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.cpu.user.pct&lt;/code&gt;&amp;nbsp;값에 대한&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;avg&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;min&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;max&lt;/code&gt;&amp;nbsp;집계를 반환하며 이것을 보여줍니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;fixed_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;10s&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;avg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;min&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:12:40.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565615560000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.002&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.002&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.002&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:12:50.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565615570000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.866&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.866&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myActualCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.866&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;보시는 것처럼,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserMin&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserAvg&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserMax&lt;/code&gt;에 대한 값은 각 버킷에서 동일합니다. 따라서 주기적인 간격으로 보고된 시계열의 원시 값을 검색해야 하는 경우, 날짜 히스토그램을 사용해 이를 수행할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그러나 대부분의 경우, 모든 데이터 요소 하나 하나에 관심을 갖게 되지 않을 것입니다. 특히 몇 초마다 측정이 이루어질 때는 더 그렇습니다. 많은 목적에 대해, 단위가 더 큰 데이터를 갖는 것이 사실상 더 낫습니다. 예를 들어, 시각화는 시계열에서 변형을 표시하기 위해 제한된 양의 픽셀만을 갖습니다. 따라서 단위가 더 세밀한 데이터는 렌더링 시간 동안 버려지게 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;시계열 데이터는 그 다음에 이루어지는 처리 단계가 무엇이든 그 요구사항에 맞는 세분성 단위로 다운샘플링되는 경우가 많습니다. 다운샘플링에서, 주어진 기간 내의 여러 데이터 요소는 단일한 것으로 축소됩니다. 서버 모니터링 예제에서, 데이터는 10초마다 측정되지만 대부분의 목적에 대해서는 1분 이내의 모든 값 평균으로 충분할 것입니다. 덧붙여 말하자면, 다운샘플링은 날짜 히스토그램 집계가 버킷당 하나 이상의 문서를 발견하는 경우 수행하는 바로 그 작업이며, 정확한 중첩 집계가 사용됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음 예제는 다운샘플링의 첫 번째 예제로서 전체 1분 버킷에 걸쳐 중첩&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;avg&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;min&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;max&lt;/code&gt;&amp;nbsp;집계를 갖는 날짜 히스토그램 결과를 보여줍니다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;fixed_interval&lt;/code&gt;&amp;nbsp;대신&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;calendar_interval&lt;/code&gt;를 사용하여 버킷 범위를 전체 분 수에 일치시킵니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;calendar_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;avg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;min&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:27:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565616420000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.927&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.6980000000000001&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.8512500000000001&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:28:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565616480000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;838&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserMin&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.5670000000000001&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.7040000000000001&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;보시는 것처럼,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserMin&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserAvg&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;myActualCpuUserMax&lt;/code&gt;를 위한 값은 이제 다르며, 사용되는 집계에 따라 달라집니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다운샘플링에 어느 방법이 사용되는지는 메트릭에 따라 달라집니다. CPU 사용률의 경우, 1분에 걸친&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;avg&lt;/code&gt;&amp;nbsp;집계로 충분합니다. 큐 길이나 시스템 로드 같은 메트릭에 대해서는,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;max&lt;/code&gt;&amp;nbsp;집계가 더 적합할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 시점에서는 또한 Elasticsearch를 사용해 일부 기본 산술을 수행하고 원래 데이터에 포함되지 않은 시계열을 계산하는 것도 가능합니다. CPU에 대해&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;avg&lt;/code&gt;&amp;nbsp;집계로 작업한다고 가정하면, 우리 예제는 다음과 같이 개선된 상태로 사용자 CPU, 시스템 CPU, 그리고&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.3/search-aggregations-pipeline-bucket-script-aggregation.html#search-aggregations-pipeline-bucket-script-aggregation&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;사용자 + 시스템의 합을 CPU 코어 수로 나눈 값&lt;/a&gt;을 반환할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;calendar_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;avg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.user.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuSystemAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;avg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.system.pct&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCpuCoresMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.cpu.cores&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCalculatedCpu&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bucket_script&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets_path&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuSystemAvg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;cores&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCpuCoresMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;(params.user + params.system) / params.cores&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;lang&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;painless&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:32:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565616720000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuSystemAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.344&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCpuCoresMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;8.0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.8860000000000001&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCalculatedCpu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.15375&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:33:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565616780000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuSystemAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.33416666666666667&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCpuCoresMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;8.0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDownsampledCpuUserAvg&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.8895&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myCalculatedCpu&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.15295833333333334&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;예제 2: 네트워크 트래픽 — 기간 및 파생 집계&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch 집계가 시계열 데이터에 대해 얼마나 유용할 수 있는지를 보여주는 좀더 상세한 예제는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.network&lt;/code&gt;&amp;nbsp;메트릭 세트입니다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.network&lt;/code&gt;&amp;nbsp;메트릭 세트 문서의 관련 부분은 다음과 같이 보입니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;network&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;in&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bytes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;37904869172&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;dropped&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;errors&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;packets&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;32143403&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;wlp4s0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;out&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bytes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6299331926&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;dropped&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;errors&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;packets&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;13362703&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Metricbeat는 시스템에 존재하는 모든 네트워크 인터페이스마다 하나의 문서를 전송하게 됩니다. 이러한 문서들은 동일한 타임스탬프를 갖게 되지만, 네트워크 인터페이스당 하나인 필드&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.network.name&lt;/code&gt;에 대해 다른 값을 갖게 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;완료된 모든 추가 집계는 인터페이스에 따라 이루어져야 하며, 따라서 우리는 이전 예제의 최상위 날짜 히스토그램 집계를 필드&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;system.network.name&lt;/code&gt;에 대한 기간 집계로 변경합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이를 위해 집계의 기준이 되는 필드 작업은 키워드 필드로 매핑되어야 한다는 점에 유의하세요. Metricbeat이 제공하는 기본 인덱스 템플릿을 가지고 작업하는 경우, 이 매핑은 이미 사용자를 위해 설정되어 있습니다. 그렇지 않은 경우,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.3/metricbeat-template.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Metricbeat 템플릿 문서 페이지&lt;/a&gt;에 무엇을 해야 하는지를 짤막하게 설명해 놓았으니 참조하시기 바랍니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;terms&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;calendar_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count_error_upper_bound&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;sum_other_doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;docker0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;enp0s31f6&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;lo&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;wlp61s0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;-12T13:39:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617140000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:40:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617200000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:41:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617260000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:42:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617320000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:43:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617380000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:44:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617440000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;CPU 예제에서처럼, 중첩 집계가 없는 경우 날짜 히스토그램 집계는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;doc_count&lt;/code&gt;만을 반환하며, 이것은 대단히 유용하지 않습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;바이트를 위한 필드에는 일정하게 증가하는 값이 포함됩니다. 이러한 필드의 값에는 마지막으로 컴퓨터가 시작된 이래 전송되거나 수신된 바이트의 수가 포함되며, 따라서 측정할 때마다 증가합니다. 이 경우에는, 정확한 중첩 집계가&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;max&lt;/code&gt;입니다. 따라서 다운샘플링된 값에는 버킷 간격 동안 측정된 최고 측정치, 따라서 최신 측정치가 포함됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;terms&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;calendar_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.in.bytes&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.out.bytes&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count_error_upper_bound&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;sum_other_doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;docker0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;enp0s31f6&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;lo&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;wlp61s0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:50:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617800000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2.991659837E9&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;46578365E8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T13:51:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565617860000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2.992027006E9&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5.46791988E8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;367169.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6119.483333333334&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkoutBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;213623.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3560.383333333333&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;일정하게 증가하는 카운터로부터 초당 바이트의 비율을 얻기 위해, 파생 집계가 사용될 수 있습니다. 선택 사항인 매개변수&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;unit&lt;/code&gt;이 이 집계로 전달되면, 다음과 같이&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;normalized_value&lt;/code&gt;&amp;nbsp;필드에서 단위당 원하는 값을 반환합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예제 쿼리:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;GET metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-*/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_search 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# same as above &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;terms&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_histogram&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;calendar_interval&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1m&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.in.bytes&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;derivative&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets_path&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;unit&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1s&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;system.network.out.bytes&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkoutBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;derivative&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets_path&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;unit&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;1s&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 다음 예제 응답:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{...},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInterfaces&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count_error_upper_bound&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;sum_other_doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;docker0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;enp0s31f6&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;lo&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;wlp61s0&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myDateHistogram&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;buckets&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T14:07:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565618820000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3.030494669E9&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;56084749E8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T14:08:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565618880000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3.033793744E9&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5.56323416E8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3299075.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;54984.583333333336&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkoutBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;238667.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3977.7833333333333&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key_as_string&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-08-12T14:09:00.000Z&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;key&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1565618940000&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc_count&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3.037045046E9&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkOutBytesMax&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5.56566282E8&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkInBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3251302.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;54188.36666666667&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;myNetworkoutBytesPerSecond&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;242866.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;normalized_value&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4047.766666666667&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;   
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/querying-and-aggregating-time-series-data-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;자체 클러스터에서 이 모든 것을 직접 해보실 수 있습니다. 아직 클러스터가 없는 경우, Elastic Cloud의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/cloud/elasticsearch-service&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elasticsearch Service&lt;/a&gt;&amp;nbsp;무료 체험판을 사용하거나 Elastic Stack의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/downloads/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;기본 배포&lt;/a&gt;를 다운로드받으실 수 있습니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/downloads/beats/metricbeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Metricbeat&lt;/a&gt;로 시스템에서 데이터 전송을 시작하고 쿼리 작업을 해보세요!&lt;/p&gt;</description>
      <category>Blog</category>
      <category>time-series</category>
      <category>시계열</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/740</guid>
      <comments>https://drscg.tistory.com/740#entry740comment</comments>
      <pubDate>Fri, 25 Sep 2020 15:04:07 +0900</pubDate>
    </item>
    <item>
      <title>2019.07.17 - Elastic Stack을 사용하여 NGINX 웹 서버를 모니터링하는 방법</title>
      <link>https://drscg.tistory.com/739</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 글에서는 Elastic Stack의 다양한 구성 요소를 사용하여 NGINX를 모니터링하는 방법을 알아봅니다. Metricbeat와 Filebeat를 사용하여 데이터를 수집합니다. 이 데이터는 Elasticsearch로 전송되어 저장됩니다. 마지막으로 Kibana를 사용하여 해당 데이터를 보겠습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Metricbeat는 연결과 관련된 데이터(활성, 처리됨, 수락됨 등) 및 총 클라이언트 요청 수를 수집합니다. Filebeat는 액세스 및 오류 로그와 관련된 데이터를 수집합니다. Mileage는 설정에 따라 다를 수 있지만 대부분이 정보를 사용하여 다음과 같은 특정 사항을 추론할 수 있습니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;특정한 리소스에 대한 오류 로그가 급증한다면 여전히 필요한 리소스를 삭제했음을 의미할 수 있습니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;액세스 로그는 서비스 사용량이 많은 시간을 표시합니다(따라서 유지관리와 같은 작업을 수행하기에 가장 좋은 시기를 확인할 수 있습니다).&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;클라이언트 요청이 갑자기 급증하면 디도스 공격과 같이 악의적인 상황임을 가려낼 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 글은 모니터링 기능을 중점적으로 다루며, Elasticsearch 설정과 같은 것들을 간략하게 설명합니다. 저는 Mac을 사용하고 있으므로 Elasticsearch, Metricbeat, Filebeat 및 Kibana의 Mac 배포를 사용합니다. 다른 플랫폼에 대한 배포는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/downloads/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;다운로드 페이지에서 얻을 수 있습니다&lt;/a&gt;.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Elasticsearch 설치&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/products/beats/metricbeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Metricbeat&lt;/a&gt;&amp;nbsp;및&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/products/beats/filebeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Filebeat&lt;/a&gt;&amp;nbsp;(실제로 모든&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/products/beats/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Beats&lt;/a&gt;)에는 데이터를 저장하기 위해 Elasticsearch 클러스터가 필요합니다. 간단한 Elasticsearch 클러스터를 로컬로 설정하겠습니다. Elasticsearch를 외부에 공개하지 않으므로&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/getting-started-with-elasticsearch-security&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;보안 구성&lt;/a&gt;에 시간을 소비하지 않을 것입니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;1단계: Elasticsearch 다운로드&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;L &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;O https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;//artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-darwin-x86_64.tar.gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;2단계: 아카이브 추출&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;xvf elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;3단계: bin 디렉토리로 변경&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cd elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;bin&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;4단계: 단일 노드 클러스터 시작&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본적으로 클러스터는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;localhost:9200&lt;/code&gt;에서 실행됩니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;NGINX 실행&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;NGINX를 실행할 수 있는 방법은 여러 가지가 있습니다. 호스트에서 독립적으로, Docker 컨테이너를 통해, Kubernetes 설정 하에 등으로 실행할 수 있습니다. Beats는 컨테이너 API 이벤트를 수신하여 서버 컨테이너를 사용하거나 제거할 때의 서버 컨테이너를 추적할 수 있는 자동 검색 기능이 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;NGINX를 설정하고 구성할 수 있는 다양한 방법이 있기 때문에, 이 글에서는 지나친 가정 없이 호스트 구성뿐만 아니라 자동 검색(이 경우 Docker) 사례를 보여줍니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Metricbeat 및 Filebeat 구성&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 Beats를 구성하여 데이터를 수집하고 전송하도록 하겠습니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;Metricbeat&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Metricbeat를 사용하여 메트릭을 수집합니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;1단계: Metricbeat 다운로드:&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;L &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;O https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;//artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.1.0-darwin-x86_64.tar.gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;2단계: 아카이브 추출&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;xvf metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;3단계: 디렉토리 변경&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cd metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 구성 시간입니다!&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본적으로 구성 파일(metricbeat.yml)은 이전에 구성한 localhost:9200에서 실행 중인 Elasticsearch 클러스터를 찾습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;4단계: 관련 Metricbeat 모듈 활성화&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본적으로 시스템 수준 메트릭만 수집됩니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;metricbeat modules enable nginx&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;5단계: 파일 소유권 변경&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Metricbeat를 루트로 실행하므로 파일 소유권 몇 개를 변경해야 합니다(또는 엄격한 권한 검사를 비활성화하기 위해 명령줄에서 --strict.perms = false 옵션을 사용하도록 선택할 수 있음).&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo chown root metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml 
sudo chown root modules&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml 
sudo chown root modules&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;nginx&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;6단계: 메트릭 세트 활성화&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;modules.d/nginx.yml&lt;/code&gt;&amp;nbsp;파일을 열면 다음과 같은 주석을 지울 수 있는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;stubstatus&lt;/code&gt;&amp;nbsp;메트릭 세트를 활성화할 수 있습니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;#metricsets:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;#  - stubstatus&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 메트릭 세트는 NGINX&amp;nbsp;&lt;a href=&quot;https://nginx.org/en/docs/http/ngx_http_stub_status_module.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;ngx_http_stub_status&lt;/a&gt;&amp;nbsp;모듈에서 데이터를 수집하므로 이 NGINX 모듈을 메트릭 세트가 작동하도록 구성해야 합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;여기에서 모니터링되는 호스트를 변경할 수도 있으며 기본적으로&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;&amp;lt;a href=&quot;http://127.0.0.1&quot;&amp;gt; htttp://127.0.0.1&amp;lt;/a&amp;gt;&lt;/code&gt;이 모니터링됩니다. 여기까지가 호스트 기반 설정의 전부입니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;7단계: 자동 검색 설정(대체)&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.1/configuration-autodiscover.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;자동 검색&lt;/a&gt;&amp;nbsp;설정을 사용하면 동일한 구성이라도 세 제공자인 Docker, Kubernetes 및 Jolokia마다 구성이 다릅니다. Docker의 예제는 다음과 같이&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;metricbeat.yml&lt;/code&gt;&amp;nbsp;구성 파일의 맨 아래에&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;metricbeat.autodiscover&lt;/code&gt;를 추가하는 것입니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;metricbeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;autodiscover&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  providers&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; docker
      templates&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; condition&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
            contains&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
              docker&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;container&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; nginx
          config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; nginx
              metricsets&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;stubstatus&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
              hosts&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;${data.host}:${data.port}&quot;&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 구성을 사용하면 이름에 NGINX가 포함된 이미지를 사용하는 모든 Docker 컨테이너(&lt;a href=&quot;https://www.elastic.co/guide/en/beats/metricbeat/7.1/defining-processors.html#conditions&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;정확한 일치보다는 하위 문자열 일치를 수행함&lt;/a&gt;)가 일치하고 stubstatus 메트릭 세트와 함께 NGINX 모듈을 활성화하는 구성을 사용합니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;8단계: Metricbeat 실행&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 구성되었습니다. 로그를 stderr에 보내고 syslog/file 출력을 비활성화하는 플래그로 Metricbeat를 실행할 수 있습니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;metricbeat &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;e&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;모든 것이 제대로 작동했다면 초기 출력이 표시되었을 것이며, 이후 Metricbeat에서 데이터를 다시 클러스터에 게시할 때마다 추가 출력이 표시되어야 합니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;Filebeat&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Filebeat를 사용하여 로그를 수집합니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;1단계: Filebeat 다운로드&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;L &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;O https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;//artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.0-darwin-x86_64.tar.gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;2단계: 아카이브 추출&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;xvf filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;3단계: 디렉토리 변경&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cd filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;4단계: NGINX 모듈 활성화&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat modules enable nginx&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본적으로 액세스 및 오류 로그가 수집됩니다. 로그 파일 경로의 경우 Filebeat는 OS를 기반으로 경로를 결정하려고 시도합니다. 다른 경로를 명시적으로 설정해야 하는 경우 modules.d/nginx.yml 구성 파일에서 경로를 설정할 수 있습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;5단계: 파일 소유권 변경&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo chown root filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml
sudo chown root modules&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;nginx&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml
sudo chown root &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;nginx&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;access&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;manifest&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml
sudo chown root &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;nginx&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;manifest&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 호스트 기반 설정이 완료되었습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;6단계: 자동 검색 설정(대체)&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이전과 마찬가지로 자동 검색을 사용하려면 추가 구성이 필요합니다. 이전 섹션과 유사하게 Docker의 예제에서도 자동 검색 섹션을 구성에 추가해야 하며, filebeat.yml은 다음과 같습니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;autodiscover&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
 providers&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
   &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; docker
     templates&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
       &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; condition&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
         contains&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
           docker&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;container&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; nginx
         config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
           &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; nginx
             access&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
               input&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
                 type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; docker
                 containers&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ids&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
                   &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;${data.docker.container.id}&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
             error&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
               input&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
                 type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; docker
                 containers&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ids&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
                   &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;${data.docker.container.id}&quot;&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;여기서는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/filebeat/7.1/filebeat-input-docker.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Docker 입력&lt;/a&gt;을 사용하도록 액세스 및 오류 옵션을 구성합니다. Docker 입력은 해당 경로(Docker 로그가 있는 기본 경로로, 기본값은&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;/var/lib/docker/containers)&lt;/code&gt;에서 컨테이너 로그를 검색합니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/beats/filebeat/7.1/configuration-autodiscover.html#_docker_2&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;템플릿 조건과 일치하는 컨테이너의 ID&lt;/a&gt;를 사용하여&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;containers.ids&lt;/code&gt;를 지정합니다. 종합하면, 로그(기본적으로)는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;/var/lib/docker/containers/ac29b98ad83ca43bb4c15ae8f0d03aff8c7d57bf5dee9024124374b92b14b0f2/&lt;/code&gt;&amp;nbsp;(ID는 다름)에서 제공됩니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;7단계: Filebeat 실행&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;e&lt;/span&gt;&lt;/pre&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Kibana 설치&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 Metricbeat 및 Filebeat가 NGINX 서버에 대한 데이터를 전송하므로 Kibana를 통해 데이터를 볼 수 있는 방법이 필요합니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;1단계: Kibana 다운로드&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;O https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;//artifacts.elastic.co/downloads/kibana/kibana-7.1.0-darwin-x86_64.tar.gz&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;2단계: 아카이브 추출 및 디렉토리 변경&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;xzf kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;gz&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cd kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;7.1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;darwin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x86_64&lt;/span&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;3단계: Kibana 실행&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/bin/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본적으로 Kibana는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;http://localhost:9200&lt;/code&gt;의 Elasticsearch 호스트를 사용하며&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;http://localhost:5601&lt;/code&gt;에서 액세스할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;http://localhost:5601/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: inherit; overflow-wrap: break-word; display: inline;&quot;&gt;http://localhost:5601&lt;/code&gt;&lt;/a&gt;로 이동하면 다음과 같은 메시지가 표시됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltad0c6331722acdc1/5d2dba9c9f0a7673f0580236/nginx-monitoring-image1.png&quot; data-sys-asset-uid=&quot;bltad0c6331722acdc1&quot; alt=&quot;Kibana에 오신 것을 환영합니다&quot; width=&quot;420&quot; height=&quot;530&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;선택적으로 샘플 데이터를 사용해볼 수 있지만&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;직접 탐색&lt;/span&gt;을 클릭해 보겠습니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Kibana에서 NGINX 데이터 시각화&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음으로 Kibana를 사용하여 데이터를 보고 분석하는 방법을 살펴보겠습니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;인프라&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Kibana 사이드바에서 인프라 앱으로 이동하면 인프라의 스냅 샷(마지막 순간)을 볼 수 있습니다. 사용된 구성에 따라 비 자동 검색 기반 설정의 호스트에서 데이터에 액세스할 수 있으며, 자동 검색 설정의 경우 Docker 및 Kubernetes 버튼(사용된 제공자를 기반으로 함)이 올바른 데이터 세트로 연결됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt1873b9142f8f4dc9/5d2d374e9f0a7673f057fe6c/nginx-monitoring-image2.png&quot; data-sys-asset-uid=&quot;blt1873b9142f8f4dc9&quot; alt=&quot;호스트, Kubernetes 및 Docker 버튼&quot; width=&quot;420&quot; height=&quot;100&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;호스트 기반 설정을 사용하면서 호스트 버튼을 클릭하면 다음 데이터가 Metricbeat에서 전달되는 것을 볼 수 있습니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt2594e5bbb16134f9/5d2d37839f0a7673f057fe72/nginx-monitoring-image3.png&quot; data-sys-asset-uid=&quot;blt2594e5bbb16134f9&quot; alt=&quot;전달된 데이터를 보려면 호스트 버튼을 클릭&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; background-color: initial; font-family: proximanovaregular, arial, helvetica, sans-serif; font-size: 14px; color: rgb(116, 133, 144); display: block; margin: auto;&quot;&gt;&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;노드 중 하나를 선택하고&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;메트릭 보기&lt;/span&gt;를 선택하면 해당 단일 NGINX 서버에 대한 자세한 메트릭이 있는 페이지를 볼 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt134bbe8e86663c4b/5d2d37bdae880b03aa40661e/nginx-monitoring-image4.png&quot; data-sys-asset-uid=&quot;blt134bbe8e86663c4b&quot; alt=&quot;서버 메트릭을 보여주는 Kibana 그래프&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;로그&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;대신 로그 앱으로 이동하면 Filebeat에서 전달된 액세스 및 오류 로그를 볼 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt79961499be8a9f3b/5d2d3803ae880b03aa406624/nginx-monitoring-image5.jpg&quot; data-sys-asset-uid=&quot;blt79961499be8a9f3b&quot; alt=&quot;Kibana 로그 앱에 오류 및 액세스 로그가 표시됨&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;사전 구성된 NGINX 대시보드&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 Kibana의 실행 및 액세스 가능한 인스턴스가 있으므로 미리 작성된 대시 보드를 로드할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Metricbeat 대시 보드를 로드하려면 Metricbeat 디렉토리에서 다음을 실행하십시오.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;metricbeat setup &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dashboards&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 Filebeat에 대해서도 동일하게 수행하십시오.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sudo &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat setup &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dashboards&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이제 Kibana 내 대시 보드 탭으로 이동하면 다음이 표시됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltf6e6bf414a9c13c8/5d2d383eb3c3b6032396a3d7/nginx-monitoring-image6.jpg&quot; data-sys-asset-uid=&quot;bltf6e6bf414a9c13c8&quot; alt=&quot;사용 가능한 대시 보드를 표시하는 Kibana 페이지&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&quot;nginx&quot; 검색으로 좁히면 다음과 같은 대시 보드를 사용할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltcf3ccffbb71a48aa/5d2d38bb2eb7167479193ecf/nginx-monitoring-image7.png&quot; data-sys-asset-uid=&quot;bltcf3ccffbb71a48aa&quot; alt=&quot;사용 가능한 NGINX 대시보드를 표시하는 Kibana 페이지&quot; width=&quot;720&quot; height=&quot;390&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예를 들어&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;[Filebeat NGINX] 액세스 및 오류 로그 ECS&lt;/span&gt;&lt;/em&gt;&amp;nbsp;대시보드는 다음과 같습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt51e7d57d2a6b575d/5d2d38f88e6f797b0da30462/nginx-monitoring-image8.jpg&quot; data-sys-asset-uid=&quot;blt51e7d57d2a6b575d&quot; alt=&quot;Filebeat NGINX 액세스 및 오류 로그 ECS&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이를 통해 Elastic Stack을 사용하여 NGINX 서버를 모니터링하는 방법을 배웠습니다. 여기서부터는 사용자에게 매우 중요한 정보를 자세히 살펴볼 수 있도록 다양한 옵션(예를 들면 다른 그룹화 및 필터링 옵션)을 보여줍니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;직접 사용해 보기&lt;/h2&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elastic Stack을 시작하는 것은 쉽습니다. 제공된 curl 명령을 통해 다양한 제품을 다운로드하거나&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/downloads/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; transition: all 300ms ease-in-out 0s; font-weight: 600; font-family: Inter, arial, sans-serif; font-size: 16px; outline: none !important;&quot;&gt;다운로드&lt;/a&gt;&lt;span style=&quot;color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&amp;nbsp;페이지로 이동하여 거기서 시작할 수 있습니다. 또는 더 쉬운 방법으로&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/cloud/elasticsearch-service/signup&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; transition: all 300ms ease-in-out 0s; font-weight: 600; font-family: Inter, arial, sans-serif; font-size: 16px; outline: none !important;&quot;&gt;Elasticsearch Service&lt;/a&gt;&lt;span style=&quot;color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;의 14일 무료 평가판을 사용해보고 시작하십시오. 궁금한 점이 있으면&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; transition: all 300ms ease-in-out 0s; font-weight: 600; font-family: Inter, arial, sans-serif; font-size: 16px; outline: none !important;&quot;&gt;토론&lt;/a&gt;&lt;span style=&quot;color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&amp;nbsp;포럼에서 문의해주세요.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>filebeat</category>
      <category>kibana</category>
      <category>metricbeat</category>
      <category>NGINX</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/739</guid>
      <comments>https://drscg.tistory.com/739#entry739comment</comments>
      <pubDate>Fri, 25 Sep 2020 14:59:40 +0900</pubDate>
    </item>
    <item>
      <title>2019.06.12 - Elasticsearch, Kibana, Beats, Logstash의 보안을 유지하기 위한 SSL, TLS, HTTPS 구성</title>
      <link>https://drscg.tistory.com/738</link>
      <description>&lt;table style=&quot;border-collapse: collapse; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); line-height: 26px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px; background: rgb(255, 255, 210);&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Elastic Stack 6.7.x / 7.0.x 또는 그 이전 버전을 실행 중이신가요?&lt;/span&gt;&amp;nbsp;그렇다면,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-setup-tls-for-elasticsearch-kibana-logstash-filebeat-with-offline-install-in-linux&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&quot;TLS를 설정하는 방법...&quot;&lt;/a&gt;&amp;nbsp;블로그를 확인해보세요. 사용하시는 버전 내에서 통신 보안을 유지하는 데 도움을 받으실 수 있습니다. 이 블로그 게시물에서 다루는 무료 보안 기능에는 Elastic Stack 6.8/7.1 이상이 필요합니다.&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elastic은 Elastic Stack 6.8과 7.1부터 기본 배포(&lt;a href=&quot;https://www.elastic.co/kr/subscriptions&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;기본&lt;/a&gt;&amp;nbsp;라이선스)의 일환으로 일부 보안 기능을 무료로 릴리즈했습니다.&amp;nbsp;SSL을 이용해 네트워크 트래픽을 암호화하고, 사용자들을 생성 및 관리하며, 인덱스와 클러스터 수준의 액세스를 보호하는 역할을 정의하고, Kibana의 보안을 완전히 유지할 수 있는 새로운 기능이 여기에 포함됩니다. 릴리즈 직후에 나온 저희의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/getting-started-with-elasticsearch-security&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;시작하기&lt;/a&gt;&amp;nbsp;블로그 포스팅에서 Elasticsearch와 Kibana 간에 TLS 통신을 사용하는 방법에 대해 설명해드리고 있습니다. 다음 블로그에서는 이 안내지침을 좀더 확장시켜 Logstash와 Beats 등 Elastic Stack의 다른 구성 요소도 다룹니다. 구성 요소 간의 TLS 활성화와 HTTP 클라이언트 통신 암호화에 대해 얘기하게 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;HTTP 레이어에서 TLS 활성화가 꼭 필요한 것은 아니지만, 데이터를 보호하는, 특히 사용자 이름/비밀번호 정보가 새어나가지 않도록 보호하는 엔드-투-엔드 보안을 위해 적극 권장됩니다. 사용자 이름/비밀번호 정보가 새어나가면 클러스터가 제 기능을 하지 못하게 됩니다. TLS 암호화, 인증, 제한된 스크립트 또는 격리 등에 대해 더 자세히 알고 싶으시면,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/tips-to-secure-elasticsearch-clusters-for-free-with-encryption-users-and-more&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;암호화, 사용자 등으로 무료로 Elasticsearch 클러스터의 보안을 유지하기 위한 팁&lt;/a&gt;&amp;nbsp;블로그를 참조하세요.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;한 가지 더 말씀드리자면, 아래에서 활성화되는 보안 기능은 Elastic Cloud의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/cloud/elasticsearch-service&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elasticsearch Service&lt;/a&gt;에서 표준 기능으로 제공됩니다. Elasticsearch Service에서 운영 중이신 경우, 다 건너뛰고 바로&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#prepare-logstash&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;5단계&lt;/a&gt;로 가셔도 됩니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Elastic Stack의 보안을 유지하기 위한 단계&lt;/h2&gt;&lt;ol style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 21px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#preparations&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;준비&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#create-ssl&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;node1의 Elasticsearch를 위한 SSL 인증서 생성과 TLS 활성화&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#enable-tls-kibana&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;node1의 Kibana를 위한 TLS 활성화&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#enable-tls-es&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;node2의 Elasticsearch를 위한 TLS 활성화&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#prepare-logstash&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;node1의 Logstash 사용자 준비&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#enable-ts-logstash&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;node1의 Logstash를 위한 TLS 활성화&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#run-filebeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Filebeat 실행 및 node1의 TLS 설정&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#use-filebeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Filebeat를 이용한 데이터 수집&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt6e99912c868e1fe8/5cfaecd5c148e2da2c69b812/Enable-security-1.jpg&quot; data-sys-asset-uid=&quot;blt6e99912c868e1fe8&quot; alt=&quot;Elastic Stack 다이어그램&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: 32px 0px;&quot;&gt;&lt;/p&gt;&lt;h2 id=&quot;preparations&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;1단계. 준비&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elastic Stack 7.1 또는 그 이후 버전의 다음 구성 요소를 다운로드하세요.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/downloads/elasticsearch&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elasticsearch&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/downloads/kibana&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Kibana&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/downloads/logstash&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Logstash&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/downloads/beats/filebeat&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Filebeat&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[1-1] /etc/hosts 파일 구성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 예제에서는 node1에 브라우저가 설치되어 있기 때문에 kibana.local이 Kibana 웹페이지에 접속할 수 있습니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# [node1]을 위한 /etc/hosts 파일(kibana.local과 logstash.local이 필요합니다)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;127.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com node1
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.3&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com node2&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# [node2]를 위한 /etc/hosts 파일(여기서는 kibana.local과 logstash.local이 필요 없습니다)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com node1
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.3&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com node2&lt;/span&gt;&lt;/pre&gt;&lt;h2 id=&quot;create-ssl&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;2단계. node1의 Elasticsearch를 위한 SSL 인증서 생성과 TLS 활성화&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-1] 환경 변수 설정(Elasticsearch가 어디서, 어떻게 다운로드되었는지에 따라 이 변수 경로를 변경해줍니다)&lt;/h3&gt;&lt;pre class=&quot;”prettyprint” prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 16px; overflow: auto; display: inline-block; background: rgb(245, 247, 250); padding: 16px; word-break: break-word; white-space: pre-wrap; border: 0px; overflow-wrap: break-word; width: 825px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ES_HOME&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/usr/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;share&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ES_PATH_CONF&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-2] tmp 폴더 생성&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir tmp
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd tmp&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 tmp&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir cert_blog&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-3] 인스턴스 yaml 파일 생성&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;instance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;# yml 파일에 인스턴스 정보 추가&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
instances&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'node1'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    dns&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'node1.elastic.test.com'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;node2&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    dns&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'node2.elastic.test.com'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'my-kibana'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    dns&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'kibana.local'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'logstash'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    dns&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'logstash.local'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;h3 id=&quot;step-2-4&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-4] CA 및 서버 인증서 생성(Elasticsearch가 설치된 후)&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 tmp&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd $ES_HOME
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; bin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certutil cert &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;keep&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;pem &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;instance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;zip&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-5] 인증서 압축 해제&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; unzip certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;zip &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;./&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6] Elasticsearch TLS 설정&lt;/h3&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6-1] cert 파일을 config 폴더로 복사&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd $ES_PATH_CONF
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; pwd
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir certs
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cp &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;/* certs
[root@node1 elasticsearch]# ll certs
total 12
-rw-r--r--. 1 root elasticsearch 1834 Apr 12 08:47 ca.crt
-rw-r--r--. 1 root elasticsearch 1834 Apr 12 08:47 ca.key
-rw-r--r--. 1 root elasticsearch 1509 Apr 12 08:47 node1.crt
-rw-r--r--. 1 root elasticsearch 1679&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt; Apr 12 08:47 node1.key
[root@node1 elasticsearch]#
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6-2] elasticsearch.yml 구성&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml 
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;## 다음 콘텐츠 추가&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node1
network&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate_authorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate_authorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
discovery&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;seed_hosts&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;node1.elastic.test.com&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
cluster&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;initial_master_nodes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;node1&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6-3] 시작 및 클러스터 로그 확인&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; grep &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'\[node1\] started'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;o&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;               &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; started&lt;/span&gt;&lt;/pre&gt;&lt;h4 id=&quot;step-2-6-4&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6-4] 기본 사용자 비밀번호 설정&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd $ES_HOME
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; bin&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;passwords &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;u &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;https://node1.elastic.test.com:9200&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Initiating&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; the setup &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; passwords &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; reserved users elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;apm_system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash_system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;beats_system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;remote_monitoring_user&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;The&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; passwords will be randomly generated &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;and&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; printed to the console&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Please&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; confirm that you would like to &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; y
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user apm_system
PASSWORD apm_system &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;apm_system_password&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user kibana
PASSWORD kibana &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;kibana_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user logstash_system
PASSWORD logstash_system &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;logstash_system_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user beats_system
PASSWORD beats_system &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;beats_system_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user remote_monitoring_user
PASSWORD remote_monitoring_user &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;remote_monitoring_user_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Changed&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user elastic
PASSWORD elastic &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;elastic_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[2-6-5] HTTPS를 통한 _cat/nodes API 연결&lt;/h4&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cacert &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;u elastic &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'https://node1.elastic.test.com:9200/_cat/nodes?v'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Enter&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; host password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; user &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'elastic'&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
ip          heap&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;percent ram&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;percent cpu load_1m load_5m load_15m node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;role master name
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;95&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.76&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.59&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.38&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mdi       &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;      node1&lt;/span&gt;&lt;/pre&gt;&lt;table style=&quot;border-collapse: collapse; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); line-height: 26px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px; background: rgb(255, 255, 210);&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;2~4단계에서 SSL 인증서를 생성할 때 당사에서는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;--keep-ca-key&lt;/code&gt;&amp;nbsp;옵션을 제공했으며 이는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;certs.zip&lt;/code&gt;&amp;nbsp;파일에 ca/ca.crt 파일뿐 아니라 ca/ca.key 파일도 포함되어 있음을 뜻합니다. Elasticsearch 클러스터에 더 많은 노드를 추가하기로 한 경우 추가 노드 인증서를 생성해야 하며 이를 위해서는 두 가지 모두의 “ca” 파일과 생성하는 데 사용한 비밀번호가 필요합니다.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;이러한 ca 파일의 사본과 생성하는 데 사용한 비밀번호를 안전한 곳에 보관하십시오.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 id=&quot;enable-tls-kibana&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;3단계. node1의 Kibana를 위한 TLS 활성화&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[3-1] 환경 변수 설정&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Kibana가 어디서, 어떻게 다운로드되었는지에 따라 이 변수 경로를 변경해줍니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; KIBANA_HOME&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/usr/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;share&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; KIBANA_PATH_CONFIG&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[3-2] config 및 config/certs 폴더 생성과 certs 복사(Kibana가 설치된 후)&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;앞서&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#step-2-4&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;2-4단계&lt;/a&gt;에서 생성된 인증 파일을 복사해서 kibana/config/certs에 붙여넣기합니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ls config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs
total &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;my&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;my&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[3-3] kibana.yml 구성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;위의 기본 사용자에 대해 생성된 비밀번호를 사용하세요.&amp;nbsp;&lt;kibana_password style=&quot;box-sizing: border-box;&quot;&gt;를&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#step-2-6-4&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;2-6-4단계&lt;/a&gt;에서 정의된 비밀번호로 바꿔야 합니다.&lt;/kibana_password&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml 
server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;my-kibana&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;kibana.local&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;my&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
server&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;my&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;kibana&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key
elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;hosts&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;https://node1.elastic.test.com:9200&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;kibana&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;password&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&amp;lt;kibana_password&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificateAuthorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;/etc/kibana/config/certs/ca.crt&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[3-4] Kibana 시작 및 Kibana 로그인 테스트&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;브라우저에서&amp;nbsp;&lt;a href=&quot;https://kibana.local:5601/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;https://kibana.local:5601/&lt;/a&gt;에 연결합니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#step-2-6-4&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;2-6-4단계&lt;/a&gt;에서 정의된&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;elastic&lt;/code&gt;&amp;nbsp;사용자 및 비밀번호를 사용해 로그인합니다. 이 예제에서는 node1에 브라우저가 설치되어 있기 때문에 kibana.local이 Kibana에 접속할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltf68c3b5a3326ded7/5cfaed09a226ce6e30bf9bd2/Enable-security-2.jpg&quot; data-sys-asset-uid=&quot;bltf68c3b5a3326ded7&quot; alt=&quot;Kibana에 로그인&quot; width=&quot;600&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;공개적으로 신뢰할 수 있는 기관은 적절한 신원 소유권을 확인한 후에만 인증서가 생성되도록 하기 위해 대단히 엄격한 기준과 감사 관행을 마련하고 있습니다. 이 블로그 포스팅의 목적으로, 우리는 Kibana를 위해 자체 서명된 인증서를 생성하겠습니다(생성된 인증서가 그 자체의 개인 키를 사용해 서명되었다는 뜻입니다). 자체 서명된 Kibana 인증서를 신뢰하지 않는 고객으로 인해, 엔터프라이즈 또는 공개 CA가 생성한 인증서를 사용해 적절한 신뢰가 확립될 때까지, Kibana 로그에서&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; background-color: initial;&quot;&gt;다음&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; background-color: initial;&quot;&gt;과 비슷한 메시지를 보시게 됩니다(다음은&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/elastic/kibana/issues/35004&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Kibana 리포지토리에 있는 문제 링크&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; background-color: initial;&quot;&gt;입니다). 이 문제는 Kibana에서 작업할 수 있는 기능에는 영향을 미치지 않습니다.&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;31.675&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;connection&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4443837888&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;14094416&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;SSL routines&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl3_read_bytes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;sslv3 alert certificate unknown&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:../&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;deps&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;openssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;openssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;s3_pkt&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1498&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;SSL alert number &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;46&lt;/span&gt;&lt;/pre&gt;&lt;h2 id=&quot;enable-tls-es&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;4단계. node2의 Elasticsearch를 위한 TLS 활성화&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[4-1] 환경 변수 설정&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ES_HOME&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/usr/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;share&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ES_PATH_CONF&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[4-2] node2의 TLS 설정&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;scp 명령을 이용해 node1에서 node2로 인증서를 복사할 수 있습니다. 두 노드 모두 인증서와 키가 있어야 연결에 대한 보안을 유지할 수 있습니다. 프로덕션 환경에서는, 각 노드에 대해 적절하게 서명된 키를 사용할 것을 권장합니다. 데모 목적으로, 우리는 자동 생성된 CA 인증서와 우리가 생성한 CA가 서명한 여러 DNS 호스트명 인증서를 사용하고 있습니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cd $ES_PATH_CONF
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; pwd
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir certs
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cp &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;/* certs  
[root@node2 elasticsearch]# 
[root@node2 elasticsearch]# ll certs
total 12
-rw-r--r--. 1 root elasticsearch 1834 Apr 12 10:55 ca.crt
-rw-r--r--. 1 root elasticsearch 1509 Apr 12 10:55 node2.crt
-rw-r--r--. 1 root elasticsearch 1675 Apr 12 10:55 node2.key&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[4-3] elasticsearch.yml 구성&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml 
node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node2
network&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;com
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate_authorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
xpack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;transport&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate_authorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
discovery&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;seed_hosts&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;node1.elastic.test.com&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[4-4] 시작 및 클러스터 로그 확인&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; grep &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'\[node2\] started'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log 
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;o&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;               &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; started&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[4-5] HTTPS를 통한 _cat/nodes API 연결&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node2 elasticsearch&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; curl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cacert &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;u elastic&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&amp;lt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;password &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; previously&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'https://node2.elastic.test.com:9200/_cat/nodes?v'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
ip          heap&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;percent ram&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;percent cpu load_1m load_5m load_15m node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;role master name
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.18&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.14&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.30&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mdi       &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;      node1
&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;192.168&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.3&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;           &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;96&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.57&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.47&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0.25&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mdi       &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;      node2&lt;/span&gt;&lt;/pre&gt;&lt;h2 id=&quot;prepare-logstash&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;5단계. node1의 Logstash 사용자 준비&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[5-1] logstash_write_role 생성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;여러 방법으로 역할을 생성할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음과 같이 Kibana 역할 UI를 사용해 생성할 수 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt6237d84941796d73/5cfaed39fbffb1623064038f/Enable-security-3.jpg&quot; data-sys-asset-uid=&quot;blt6237d84941796d73&quot; alt=&quot;logstash_write_role 생성&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: 32px 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;또는 다음과 같이 Kibana 개발자 도구 탭에서 API를 사용하여 사용자를 생성하세요.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash_write_role
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;cluster&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;monitor&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;manage_index_templates&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;indices&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;names&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;logstash*&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;privileges&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;write&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;create_index&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field_security&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;grant&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;run_as&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;metadata&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;transient_metadata&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;enabled&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그러면 다음과 같은 응답을 받게 됩니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;created&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 역할을 배정받은 사용자는 어떤 문서도 삭제할 수 없습니다. 이 역할은 사용자가&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;logstash&lt;/code&gt;를 시작하는 경우에만 인덱스를 생성할 수 있도록 제한하며, 또는 그러한 인덱스의 문서들만 색인하도록 제한합니다.&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); line-height: 26px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px; background: rgb(255, 255, 210);&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;ILM 사용자를 위한 참고 사항:&lt;/span&gt;&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;logstash_writer_role&lt;/code&gt;이&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/logstash/7.4/ls-security.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;index lifecycle management (ILM)&lt;/a&gt;을 사용하려면(7.3 이상부터 기본적으로 지원) 다음 권한이 포함되어 있어야 합니다.&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; color: rgb(0, 0, 0); background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 803px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;privileges&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;write&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;create&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;delete&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;create_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;manage&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;manage_ilm&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
        &lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 id=&quot;step-5-2&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[5-2] logstash_writer 사용자 생성(logstash_writer 사용자에 대한 비밀번호를 변경하세요)&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;여러 방법으로 사용자를 생성할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음과 같이 Kibana 사용자 UI를 사용해 생성할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt9dc17cc8b085963b/5cfaed4f7d8bc4da32ecee7e/Enable-security-4.jpg&quot; data-sys-asset-uid=&quot;blt9dc17cc8b085963b&quot; alt=&quot;logstash_writer 사용자 생성&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: 32px 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;또는 다음과 같이 Kibana 개발자 도구 탭에서 API를 사용하여 사용자를 생성하세요.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;_security&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;user&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash_writer
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;username&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;logstash_writer&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;roles&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;logstash_write_role&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;full_name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;email&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;password&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&amp;lt;logstash_system_password&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;enabled&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그러면 다음과 같은 응답을 받게 됩니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;created&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}}&lt;/span&gt;&lt;/pre&gt;&lt;h2 id=&quot;enable-ts-logstash&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;6단계. node1의 Logstash를 위한 TLS 활성화&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[6-1] 폴더 생성 및 인증서 복사&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ls &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;l
total &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt
logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[6-2] Beats 입력 플러그인을 위해 logstash.key를 PKCS#8 형식으로 변환&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; openssl pkcs8 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;topk8 &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;nocrypt &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;pkcs8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;key&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[6-3] logstash.yml 구성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;logstash_system 사용자를 위해 자동 생성된 비밀번호를 사용하세요.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#step-2-6-4&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;2-6-4단계&lt;/a&gt;에서 정의된 비밀번호를 사용하세요.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 나서, 다음과 같이 편집하세요.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;local&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
path&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;conf&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; color: rgb(136, 0, 0);&quot;&gt;/*.conf
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: '&amp;lt;logstash_system_password&amp;gt;'
xpack.monitoring.elasticsearch.hosts: [ 'https://node1.elastic.test.com:9200' ]
xpack.monitoring.elasticsearch.ssl.certificate_authority: /etc/logstash/config/certs/ca.crt&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[6-4] conf.d/example.conf 생성 및 구성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch 출력에서,&lt;a href=&quot;https://www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash#step-5-2&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;5-2단계&lt;/a&gt;에서 정의된 비밀번호를 사용하세요.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; vi conf&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;example&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;conf 
input &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  beats &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    port &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5044&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    ssl &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    ssl_key &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'/etc/logstash/config/certs/logstash.pkcs8.key'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    ssl_certificate &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'/etc/logstash/config/certs/logstash.crt'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
output &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  elasticsearch &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    hosts &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;https://node1.elastic.test.com:9200&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;https://node2.elastic.test.com:9200&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    cacert &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'/etc/logstash/config/certs/ca.crt'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    user &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;'logstash_writer'&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    password &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&amp;lt;logstash_writer_password&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[6-5] 예제 구성으로 Logstash 시작 및 Logstash 로그 확인&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음 로그 메시지를 볼 수 있어야 합니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;INFO &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;pipeline        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Pipeline&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; started successfully &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;pipeline_id&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;.monitoring-logstash&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;thread&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;#&amp;lt;Thread:0x640c14d2@/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:246 run&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 Kibana Monitoring 탭에서,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/logstash/7.1/monitoring-logstash.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Logstash&lt;/a&gt;가 표시됩니다(노드 정보, 파이프라인 설정, OS 정보, JVM 정보, 처리 통계, 파이프라인 런타임 통계).&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blta719c7a43ee505db/5cfaed70274077eb325ae722/Enable-security-5.jpg&quot; data-sys-asset-uid=&quot;blta719c7a43ee505db&quot; alt=&quot;Logstash가 표시된 Kibana Monitoring 탭&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: 32px 0px;&quot;&gt;&lt;/p&gt;&lt;h2 id=&quot;run-filebeat&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;7단계. Filebeat 실행 및 node1의 TLS 설정&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[7-1] 구성 폴더 생성 및 인증서 복사&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir config
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cp &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/tmp/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;cert_blog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ll config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
total &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;rw&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;--.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; root root &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1834&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Apr&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;00&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[7-2] 새로운 filebeat.yml 생성&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; pwd
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mv filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;yml&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;old&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[7-3] 새 구성 파일 filebeat.yml 편집&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; log
  paths&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dataset
output&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  hosts&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;logstash.local:5044&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
  ssl&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certificate_authorities&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;certs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;ca&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;crt&lt;/span&gt;&lt;/pre&gt;&lt;h2 id=&quot;use-filebeat&quot; style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;8단계. Filebeat를 이용한 데이터 수집&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[8-1] Filebeat를 위한 입력 로그 데이터 준비(logstash-tutorial.log)&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;먼저,&amp;nbsp;&lt;a href=&quot;https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;입력 로그 데이터&lt;/a&gt;를 다운로드합니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; pwd
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; mkdir logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dataset
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; cp &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; ll logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
total &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;rwxr&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;---.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; root root &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;24464&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Apr&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;00&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[8-2] Filebeat 시작&lt;/h3&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; systemctl start filebeat
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;root@node1 filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]#&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; systemctl enable filebeat
&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Created&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; symlink &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;systemd&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;multi&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;user&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;wants&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;service to &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;usr&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;lib&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;systemd&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[8-3] 로그 확인&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음 로그 메시지를 볼 수 있어야 합니다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;INFO    log&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;harvester&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;216&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;Harvester&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; started &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; file&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;/etc/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;filebeat&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;tutorial&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;log&lt;/span&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;[8-4] 인덱스 패턴 생성&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다음으로, 수집되고 있는 데이터와 일치하는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.1/tutorial-define-index.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;인덱스 패턴&lt;/a&gt;을 생성합니다. Graph나 Discover와 같이, 이것은 Kibana에서 데이터를 시각화할 수 있게 해줍니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt55dc9c142f197a3b/5cfaed9da226ce6e30bf9bd8/Enable-security-6.jpg&quot; data-sys-asset-uid=&quot;blt55dc9c142f197a3b&quot; alt=&quot;Kibana에서 인덱스 패턴 생성.&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: 32px 0px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그리고 나서 시간 필터 파일 이름을 선택합니다. 우리 예제에서는&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;@timestamp&lt;/code&gt;입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltb91aafb6f8acc42a/5cfaedb5c148e2da2c69b818/Enable-security-7.jpg&quot; data-sys-asset-uid=&quot;bltb91aafb6f8acc42a&quot; alt=&quot;시간 필터 파일 이름을 지정합니다.&quot; width=&quot;600&quot; style=&quot;box-sizing: border-box; vertical-align: middle; border-style: none; height: auto; max-width: 100%; margin: auto; display: block;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다 됐습니다! Elastic Stack의 다른 부분 간의 통신을 암호화했으며, 이제 로그 데이터를 안전하고 보안이 유지된 상태에서 수집하고 있습니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;끝으로 몇 가지...&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;보안을 구성하는 동안 문제에 직면하면, 제일 먼저 설명서의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elastic-stack-overview/7.1/security-troubleshooting.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;보안 문제해결 안내&lt;/a&gt;를 찾아보실 것을 권합니다. 수많은 일반적인 문제에 도움이 될 것입니다. 그 후에도 여전히 질문이 있으시면, 저희&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elastic 포럼&lt;/a&gt;을 확인하셔서 추가 도움을 받으세요. 또는 Elastic 지원팀과 직접 얘기하고 싶으시면, 오늘&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/subscriptions&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elastic 구독&lt;/a&gt;을 시작하시고 전문가팀을 직접 이용하세요. 안전 조심하세요!&lt;/p&gt;</description>
      <category>Blog</category>
      <category>tls</category>
      <category>보안</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/738</guid>
      <comments>https://drscg.tistory.com/738#entry738comment</comments>
      <pubDate>Fri, 25 Sep 2020 14:55:49 +0900</pubDate>
    </item>
    <item>
      <title>2019.05.19 - 고급 튜닝: 느린 Elasticsearch 쿼리를 찾아 문제 해결</title>
      <link>https://drscg.tistory.com/737</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch는 매우 유연하고 기능이 풍부한 애플리케이션으로, 데이터를 쿼리하는 다양한 방법을 제공합니다. 그러나 기대했던 것보다 느린 속도의 쿼리를 경험해 본 적이 있으신가요? Elasticsearch와 같은 분산 시스템에는 로드 밸런서 설정, 네트워크 지연 시간(대역폭, NIC 카드/드라이버) 등과 같은 외부 요인을 비롯하여 쿼리 성능에 영향을 미치는 다양한 요소가 있을 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 블로그에서는 쿼리 속도 저하의 원인과 Elasticsearch의 컨텍스트 내에서 이를 식별하는 방법에 대해 설명합니다. 또한 Elasticsearch 작동 방식에 상당히 익숙해야 사용할 수 있는 몇 가지 일반적인 문제 해결 방법을 다룹니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;Elasticsearch 쿼리 속도 저하의 일반적인 원인&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;몇 가지 까다로운 사례를 살펴보기 전에 먼저 쿼리 속도 저하의 가장 일반적인 원인과 그 해결 방법부터 알아보겠습니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 비활성 상태에서 높은 리소스 사용률&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;모든 샤드는 리소스(CPU/메모리)를 소비합니다. 색인/검색 요청이 없는 경우에도 샤드가 있으면 클러스터 오버헤드가 소비됩니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;모든 쿼리의 실행 속도가 느리게 느껴질 정도로 클러스터에&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;샤드가 너무 많습니다&lt;/a&gt;. 경험상으로 보면 노드당 비&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/frozen-indices.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;고정&lt;/a&gt;&amp;nbsp;샤드 수는 구성된&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/heap-size.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;힙&lt;/a&gt;&amp;nbsp;GB당 20개 미만으로 유지하는 것이 좋습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;샤드 수를 줄이고,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/freeze-index-api.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;인덱스를 고정&lt;/a&gt;하거나, 로드를 처리할 노드를 추가합니다. 샤드 수를 효율적으로 관리하기 위해 Elasticsearch의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/managing-time-based-indices-efficiently&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;롤오버/축소 기능&lt;/a&gt;과 함께&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/hot-warm-architecture-in-elasticsearch-5-x&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;핫/웜 아키텍처&lt;/a&gt;(시간 기반 인덱스에 매우 적합)를 고려합니다. 배포할 때 먼저 적절한&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/guide/master/capacity-planning.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;용량 계획&lt;/a&gt;을 수립하면 각 검색 사용 사례에 맞는 최적의 샤드 수를 결정하는 데 도움이 됩니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 스레드 풀이 거부된 횟수 증가&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;검색 스레드 풀이 ‘거부된’ 횟수가 계속 증가합니다. 이 횟수는 마지막 클러스터 재시작을 기준으로 누적됩니다.&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 16px; overflow: auto; display: inline-block; background: rgb(245, 247, 250); padding: 16px; word-break: break-word; white-space: pre-wrap; border: 0px; overflow-wrap: break-word; width: 825px;&quot;&gt;GET /_cat/thread_pool/search?v&amp;amp;h=node_name,name,active,rejected,completed
&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;응답은 다음과 같습니다.&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 16px; overflow: auto; display: inline-block; background: rgb(245, 247, 250); padding: 16px; word-break: break-word; white-space: pre-wrap; border: 0px; overflow-wrap: break-word; width: 825px;&quot;&gt;node_name             name   active rejected completed
instance-0000000001   search      0       10         0
instance-0000000002   search      0       20         0
instance-0000000003   search      0       30         0
&lt;/pre&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;쿼리가 클러스터의 코어 수를 초과하여 너무 많은 샤드를 대상으로 합니다. 그러면 검색 스레드 풀에 대기 중인 작업이 생성되어 검색 거부로 이어집니다. 또 다른 일반적인 원인은 느린 디스크 I/O로 인해 검색이 대기열에 오르게 되거나 경우에 따라 CPU가 완전히 포화 상태가 됩니다.&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;인덱스를 생성할 때&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;기본 1 : 복제본 1&lt;/em&gt;&amp;nbsp;모델을 채택합니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/indices-templates.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;인덱스 템플릿&lt;/a&gt;은 인덱스 시간에 이 설정을 롤아웃하는 좋은 방법입니다. (Elasticsearch 7.0 이상에서는 1P:1R이 기본값입니다). Elasticsearch 5.1 이상에서는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search.html#global-search-cancellation&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;검색 작업 취소&lt;/a&gt;&amp;nbsp;기능을 지원합니다. 이 기능은&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tasks.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;작업 관리 API&lt;/a&gt;에 느린 쿼리가 표시될 때 유용합니다. 디스크 I/O를 개선하려면&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-indexing-speed.html#_use_faster_hardware&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;스토리지 권장 사항&lt;/a&gt;을 확인하고 최대 성능을 위해 권장 하드웨어를 사용해야 합니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 높은 CPU 사용률 및 긴 색인 지연 시간&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.0/elasticsearch-metrics.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;메트릭&lt;/a&gt;&amp;nbsp;상관관계는 클러스터에 과부하가 발생할 때 CPU 사용률이 높고 색인 지연 시간이 길다는 것을 보여줍니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;클러스터에 색인 작업이 많으면 검색 성능에 영향을 미칩니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/index-modules.html#dynamic-index-settings&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;index.refresh_interval&lt;/a&gt;(문서가 색인되는 시점과 문서가 표시되는 시점 사이의 시간)을 예를 들어 30초로 늘리면 일반적으로 색인 성능이 향상됩니다. 실제 적합한 간격은 상황에 따라 다를 수 있으므로 테스트가 중요합니다. 이렇게 하면 1초마다(기본값) 새 세그먼트를 생성하여 샤드가 작업을 과도하게 수행하지 않아도 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;색인 작업이 많은 사용 사례의 경우&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-indexing-speed.html#_disable_refresh_and_replicas_for_initial_loads&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;인덱스 튜닝 권장 사항&lt;/a&gt;을 확인하여 인덱스와 검색 성능을 모두 최적화합니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 더 많은 복제본 샤드로 지연 시간 증가&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;복제본 샤드 수를 늘리면(예: 1개에서 2개로) 쿼리 지연 시간이 발생할 수 있습니다. 더 많은 데이터가 있는 경우 캐시된 데이터가 더 빨리 제거되어 운영 체제 페이지 오류가 증가합니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;파일 시스템 캐시에는 인덱스 중 자주 쿼리되는 부분을 캐시하기에 충분한 메모리가 없습니다. Elasticsearch의&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/query-cache.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;쿼리 캐시&lt;/a&gt;는 LRU 제거 정책을 구현합니다. 즉, 캐시가 가득 차면 가장 최근에 사용되지 않은 데이터가 제거되어 새 데이터를 저장할 수 있게 됩니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-indexing-speed.html#_give_memory_to_the_filesystem_cache&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;파일 시스템 캐시용으로 물리적 RAM의 50% 이상&lt;/a&gt;을 남겨둡니다. 메모리가 많을수록 더 많은 부분을 캐시할 수 있으며 특히 클러스터에 I/O 문제가 발생할 경우 유용합니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/heap-size.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;힙 크기&lt;/a&gt;가 적절하게 구성되었다고 가정할 때 파일 시스템 캐시에 사용할 수 있는 나머지 물리적 RAM은 검색 성능을 향상하는 데 큰 도움이 됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;예를 들어, 128GB RAM 서버에서 힙 크기로 30GB를 설정하고 나머지 메모리를 파일 시스템 캐시(OS 캐시라고도 함)용으로 설정합니다. 이 방법은 운영 체제가 최근에 액세스한 4KB 블록의 데이터를 캐시하는 방식입니다. 따라서 동일한 파일을 반복해서 읽으면 대부분의 경우 디스크로 이동할 필요 없이 메모리에서 직접 읽기 요청을 처리합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch는 파일 시스템 캐시 외에도&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-search-speed.html#preference-cache-optimization&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;쿼리 캐시와 요청 캐시&lt;/a&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-search-speed.html#_use_literal_preference_literal_to_optimize_cache_utilization&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&lt;/a&gt;를 사용하여 검색 속도를 높입니다.&amp;nbsp;이러한 캐시는 모두 특정 검색 요청을 서로 다른 복사본에 번갈아 보내는 대신 매번 동일한 샤드 집합으로 라우팅하도록&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-request-preference.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;검색 요청 기본 설정&lt;/a&gt;을 사용하여 최적화할 수 있습니다. 이렇게 하면 요청 캐시, 노드 쿼리 캐시 및 파일 시스템 캐시를 더 잘 활용할 수 있습니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 리소스 공유 시 사용률 증가&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;운영 체제에 일관되게 높은 CPU 및 디스크 I/O 사용량이 표시됩니다. 타사 애플리케이션을 중지하면 성능이 향상되는 것을 확인할 수 있습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;다른 프로세스(예: Logstash)와 Elasticsearch 자체 간에 리소스(CPU 및/또는 디스크 I/O) 경합이 있습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;공유 하드웨어에서 Elasticsearch를 리소스 집약적인 다른 애플리케이션과 함께 실행하지 않도록 합니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;증상: 매우 고유한 필드를 집계할 때 힙 사용량 증가&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;매우 고유한 값(예: ID, 사용자 이름, 이메일 주소 등)이 포함된 집계된 필드를 쿼리할 때 성능이 저하됩니다. 힙 덤프 분석 중에 &quot;search&quot;, &quot;buckets&quot;, &quot;aggregation&quot; 등의 용어가 포함된 Java 객체가 힙을 많이 사용하는 것을 볼 수 있습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;문제&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Cardinality_(SQL_statements)&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;카디널리티가 높은&lt;/a&gt;&amp;nbsp;필드, 즉 많은 버킷을 가져오기 위해 많은 리소스가 필요한 필드에서 집계 작업이 실행되고 있습니다.&amp;nbsp;중첩 필드 및/또는 조인 필드를 포함하는 중첩 집계가 있을 수도 있습니다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; margin: 0px; line-height: 26px; font-size: 18px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;해결 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;카디널리티가 높은 용어 집계의 성능을 향상하려면 컨설팅 팀 동료가 작성한 이 블로그 게시물(&lt;a href=&quot;https://www.elastic.co/kr/blog/improving-the-performance-of-high-cardinality-terms-aggregations-in-elasticsearch&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;https://www.elastic.co/kr/blog/improving-the-performance-of-high-cardinality-terms-aggregations-in-elasticsearch&lt;/a&gt;)을 읽어보시기 바랍니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;추가적인 튜닝 작업을 하려면&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/nested.html#_limiting_the_number_of_literal_nested_literal_fields&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;중첩 필드&lt;/a&gt;와&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/parent-join.html#_parent_join_and_performance&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;조인 필드&lt;/a&gt;에 대한 권장 사항을 확인하여 집계 성능을 개선하시기 바랍니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;가끔 느린 쿼리&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;일반적으로 말해서 가끔 또는 간헐적으로 느린 쿼리에는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-indexing-speed.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;인덱스 튜닝&lt;/a&gt;/&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-search-speed.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;검색 튜닝&lt;/a&gt;&amp;nbsp;권장 사항 중 일부를 활용할 수 있습니다. 가끔 느린 쿼리는 다음&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.0/elasticsearch-metrics.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;모니터링 메트릭&lt;/a&gt;&amp;nbsp;중 하나 이상과 밀접하게 연관되어 있습니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;CPU 로드&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;색인 처리량&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;검색 처리량&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;가비지 수집(GC) 활동&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/cat-thread-pool.html#cat-thread-pool&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;검색 스레드 풀 대기열 크기&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch에는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/modules-node.html#coordinating-node&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;조율 노드&lt;/a&gt;가 데이터 노드의 로드를 인식하고 검색을 실행할 수 있는 최상의 샤드 복사본을 선택하도록 하여 검색 처리량과 지연 시간을 개선하는 또 다른 유용한 기능인&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/improving-response-latency-in-elasticsearch-with-adaptive-replica-selection&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;ARS(Adaptive Replica Selection)&lt;/a&gt;가 있습니다. ARS는 쿼리 시간 동안 로드를 더욱 고르게 분산시킴으로써 가끔 발생하는 속도 저하를 개선하는 데 큰 도움이 될 수 있습니다. Elasticsearch 7.0 이상에서는 ARS가 기본적으로 켜져 있습니다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;일관되게 느린 쿼리&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;일관되게 느린 쿼리의 경우 쿼리에서 기능을 하나씩 제거하면서 쿼리가 여전히 느린지 여부를 확인하면 됩니다. 성능 문제를 재현하는 가장 간단한 쿼리를 찾으면 문제를 분리하고 식별하는 데 도움이 됩니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-request-highlighting.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;강조 표시&lt;/a&gt;가 없어도 여전히 느린가요?&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;집계가 없어도 여전히 느린가요?&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;크기&lt;/code&gt;가 0으로 설정되어 있어도 여전히 느린가요? (&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;크기&lt;/code&gt;가 0으로 설정되면 Elasticsearch에서 검색 요청 결과를&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/shard-request-cache.html#shard-request-cache&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;캐시&lt;/a&gt;하여 검색 속도를 높임)&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/tune-for-search-speed.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;‘검색 튜닝’&lt;/a&gt;&amp;nbsp;권장 사항 몇 가지를 적용하면 도움이 될까요?&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;문제를 해결할 때는 다음과 같은 방법이 유용할 때가 많습니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-profile.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;프로필&lt;/a&gt;이 켜진 상태에서 쿼리 응답을 가져옵니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;While(true) 루프에서 실행 중인 쿼리로&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/cluster-nodes-hot-threads.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;노드 핫 스레드&lt;/a&gt;&amp;nbsp;출력을 수집합니다. 이는 CPU 시간이 어디에 사용되는지 이해하는 데 도움이 됩니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;프로필 API의 이&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.0/xpack-profiler.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;사용자 친화적인 버전&lt;/a&gt;을 사용하여 쿼리를 프로파일링합니다.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;쿼리가 Kibana 시각화에서 수신된 경우&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/6.3/vis-spy.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Visualization Spy Panel&lt;/a&gt;(Kibana 버전 6.3 이하) 또는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/6.4/viewing-detailed-information.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Dashboard Inspect Panel&lt;/a&gt;(Kibana 버전 6.4 이상)을 사용하여 실제 쿼리 요청을 보고 내보낸 후 추가 분석을 위해 프로파일 API로 가져오십시오.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;느리거나 비싼 쿼리 포착&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch와 같은 분산 애플리케이션에서는 다양한 요청/스레드가 동시에 처리되므로 느리거나 비싼 쿼리를 포착하기가 어려울 수 있습니다. 클러스터 성능을 저하하거나(예: 긴 가비지 수집(GC) 주기) 더 안 좋게는 OOM(메모리 부족) 상황을 유발하는 비싼 쿼리를 실행하는 사용자를 제어할 수 없을 경우 상황은 더욱 복잡해집니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch 버전 7.0에는 메모리가 예약될 때 실제 힙 메모리 사용량을 측정하는&amp;nbsp;&lt;a href=&quot;https://github.com/elastic/elasticsearch/pull/31767&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;새로운 회로 차단 전략&lt;/a&gt;이 도입되었습니다. 이 새로운 전략은 클러스터 과부하를 유발하는 비싼 쿼리에 대한&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/improving-node-resiliency-with-the-real-memory-circuit-breaker&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;노드 복원력을 개선&lt;/a&gt;하고, 기본적으로 켜져 있으며, 새로운 클러스터 설정인&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/circuit-breaker.html#parent-circuit-breaker&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;indices.breaker.total.use_real_memory&lt;/a&gt;로 제어할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;그러나 이러한 방법은 최선의 노력임을 유념해야 합니다. 여기에서 다루지 않은 시나리오의 경우&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/heap-dump-path.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;OOM 크래시 후 힙 덤프&lt;/a&gt;&amp;nbsp;또는&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/t/how-to-capture-a-heap-dump-from-a-running-jvm/84&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;실행 중인 JVM에서 힙 덤프&lt;/a&gt;를 수집하여 근본 원인을 보다 잘 이해하는 것이 좋습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch에는 클러스터를 OOM으로부터 보호하기 위한 또 다른 보호 설정(&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-aggregations-bucket.html#&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;최대 버킷 소프트 한도&lt;/a&gt;)이 있습니다. 이 최대 버킷 집계 설정은 예를 들어 여러 집계 계층을 실행하느라 버킷 수(버전 7.0에서 기본값은 10,000개)가 초과되면 실행을 중지하고 검색 요청을 실패로 처리합니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;잠재적인 고가의 쿼리를 추가로 식별하기 위해 낮은 임계값에서 시작하여 쿼리를 분리하고 임계값을 점차 높여 특정 쿼리로 범위를 좁혀갈 수 있도록 회로 차단 설정(&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/circuit-breaker.html#request-circuit-breaker&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;indices.breaker.request.limit&lt;/a&gt;)을 구성할 수 있습니다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;느린 로그&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch에서&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/index-modules-slowlog.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;느린 로그&lt;/a&gt;를 켜서 실행 속도가 느린 쿼리를 식별할 수도 있습니다. 느린 로그는 구체적으로 샤드 수준에서만 작동하며, 이는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/modules-node.html#data-node&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;데이터 노드&lt;/a&gt;만 적용됨을 의미합니다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/modules-node.html#coordinating-only-node&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;조율 전용/클라이언트 노드&lt;/a&gt;는 데이터(인덱스/샤드)를 보유하지 않으므로 제외됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;느린 로그는 다음과 같은 질문에 대답하는 데 도움이 됩니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;쿼리 작업에 시간이 얼마나 걸렸나요?&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;쿼리 요청 본문의 내용은 무엇인가요?&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;느린 로그 출력 샘플:&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 825px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2019&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;02&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;11T16&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;882&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;TRACE&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;search&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;slowlog&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2g1yKIZ&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;logstash&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;20190211&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; took&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;10.4s&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; took_millis&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;10459&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; total_hits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;16160&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; types&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; stats&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; 
search_type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;QUERY_THEN_FETCH&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; total_shards&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; source&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;size&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bool&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;must&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:[{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;range&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;from&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1549266459837&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;to&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1549871259837&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;include_lower&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;include_upper&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;epoch_millis&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;boost&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}}}],&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;adjust_pure_negative&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;boost&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;1.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}},&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;includes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:[],&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;excludes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:[]},&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;stored_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;docvalue_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_time&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;utc_time&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;date_time&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;script_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;hour_of_day&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;doc['timestamp'].value.getHourOfDay()&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;lang&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;painless&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ignore_failure&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}},&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;aggregations&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;maxAgg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;max&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bytes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}},&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;minAgg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;min&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;bytes&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}}}}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; id&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[]],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/advanced-tuning-finding-and-fixing-slow-elasticsearch-queries#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;느린 로그 메시지 세부 항목:&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); line-height: 26px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px; background-color: rgb(223, 223, 223);&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;항목&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[2019-02-11T16:47:39,882]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;쿼리 날짜&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[TRACE]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;로그 수준&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[index.search.slowlog.query]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;검색 느린 로그의 쿼리 단계&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[2g1yKIZ]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;노드 이름&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[logstash-20190211]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;인덱스 이름&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;[4]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;실행된 쿼리의 샤드 번호&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;took[10.4s]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;샤드 처리에 걸린 시간[4]. 참고: 느린 로그를 살펴볼 때, 각 샤드가 병렬로 실행될 수 있기 때문에 서로 다른 샤드의 시간을 모두 추가하지 않는 것이 좋습니다.&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;took_millis[10459]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;소요 시간(밀리초)&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;total_hits[16160]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;적중 결과 합계&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;search_type[QUERY_THEN_FETCH]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-request-search-type.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;검색 유형&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;total_shards[10]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;인덱스의 샤드 합계&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;source[]&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; line-height: 26px; color: rgb(52, 55, 65); border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); padding: 10px;&quot;&gt;실행된 쿼리 본문&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 0px; line-height: 28px; font-size: 24px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 8px;&quot;&gt;감사 로그&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/what-is/elastic-stack-security&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elastic 보안 기능&lt;/a&gt;이 포함된 골드 또는 플래티넘&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/subscriptions&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;구독&lt;/a&gt;&amp;nbsp;고객은&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elastic-stack-overview/7.0/auditing.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;감사 로그&lt;/a&gt;를 켜서 쿼리에 대한 자세한 내용을 캡처할 수 있습니다. (사용자는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/kibana/7.0/managing-licenses.html&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;30일 체험판&lt;/a&gt;을 통해 Elastic 보안 기능을 테스트할 수 있습니다.) 감사 로깅은 다음과 같은 질문에 대답하는 데 도움이 됩니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;쿼리는 언제 발생했나요?&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;누가 쿼리를 실행했나요?&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;쿼리 내용은 무엇인가요?&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;기본 설정은 부족한 부분이 많으므로 이를 튜닝해야 합니다.&lt;/p&gt;&lt;ol style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 21px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;보안 감사 로그 활성화:&lt;/span&gt;&amp;nbsp;elasticsearch.yml에&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;xpack.security.audit.enabled: true&lt;/code&gt;&amp;nbsp;설정.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;보안 감사 출력에서 로그 또는 인덱스 활성화:&lt;/span&gt;&amp;nbsp;elasticsearch.yml에&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;xpack.security.audit.outputs:[logfile, index]&lt;/code&gt;&amp;nbsp;설정.&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;참고:&lt;/span&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background: none; list-style: none; padding: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;xpack.security.audit.outputs 설정은 버전 6.0, 6.2 및 5.x에만 적용됩니다. xpack.security.audit.enabled가 true로 설정되면 버전 7.0에서는 이 설정을 허용하지 않으며&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/auditing-settings.html#general-audit-settings&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;json 출력을 기본값&lt;/a&gt;(&amp;lt;clustername&amp;gt;_audit.json)으로 사용합니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;감사 로깅의 세부 정보로 인해 보안 인덱스가 의도한 크기보다 커질 경우 클러스터 성능에 부담을 줄 수 있으므로 문제 해결을 위해서는 인덱스보다 로그 파일을 선택하는 것이 좋습니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;감사 모드에서는 매우 자세한 정보가 표시될 수 있으므로 문제가 해결되면 끄십시오.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;이벤트 목록에 authentication_success 액세스를 포함하십시오.&lt;/span&gt;&amp;nbsp;elasticsearch.yml에&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;xpack.security.audit.logfile.events.include: authentication_success&lt;/code&gt;&amp;nbsp;설정.&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;참고:&lt;/span&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background: none; list-style: none; padding: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;이 설정은&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/auditing-settings.html#event-audit-settings&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;기본 이벤트&lt;/a&gt;에 포함되지 않습니다. 이를 설정하면 기본 설정을 덮어씁니다.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;하나 이상의 이벤트를 추가해야 하는 경우(대체가 아니라), 기존 기본 이벤트 목록을 먼저 작성한 후 마지막 항목 뒤에 위 설정을 추가하십시오.&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;감사 이벤트의 요청 본문 출력:&lt;/span&gt;&amp;nbsp;elasticsearch.yml에&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/7.0/auditing-settings.html#event-audit-settings&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: inherit; overflow-wrap: break-word; display: inline;&quot;&gt;xpack.security.audit.logfile.events.emit_request_body: true&lt;/code&gt;&lt;/a&gt;&amp;nbsp;설정.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 설정을 사용하면 다음과 같은 사용자 쿼리를 모니터링할 수 있습니다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;사용자:&amp;nbsp;&lt;/em&gt;louisong&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;쿼리 작업 시간:&lt;/em&gt;&amp;nbsp;2019-05-01T19:26:53,554 (UTC)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;쿼리 엔드포인트:&lt;/em&gt;&amp;nbsp;_msearch(이는 일반적으로 Kibana 시각화/대시보드에서 발행된 쿼리를 의미함)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; background: none; list-style: none; margin: 0px 0px 10px 20px; padding: 0px 0px 0px 15px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;쿼리 본문:&lt;/em&gt;&amp;nbsp;다음 로그에서&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; color: rgb(232, 62, 140); overflow-wrap: break-word; display: inline;&quot;&gt;&quot;request.body&quot;:&lt;/code&gt;로 시작되는 부분:&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 15px; margin-top: 16px; margin-bottom: 15px; overflow: auto; display: inline-block; color: rgb(0, 0, 0); background: rgb(240, 240, 240); padding: 10px; border-width: 0px 0px 0px 3px; border-style: none none none solid; border-left-color: rgb(57, 189, 177); border-top-color: initial; border-right-color: initial; border-bottom-color: initial; overflow-wrap: break-word; width: 765px; border-image: initial; border-radius: 0px; word-break: break-word !important; white-space: pre-wrap !important;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;@timestamp&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;2019-05-01T19:26:53,554&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;node.id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;Z1z_64sIRcy4dW2eqyqzMw&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;event.type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;rest&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;event.action&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;authentication_success&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;user.name&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;louisong&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;origin.type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;rest&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;origin.address&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;127.0.0.1:51426&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;realm&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;default_native&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;url.path&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;/_msearch&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;url.query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;rest_total_hits_as_int=true&amp;amp;ignore_throttled=true&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;request.method&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;request.body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;{\&quot;index\&quot;:\&quot;*\&quot;,\&quot;ignore_unavailable\&quot;:true&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;,\&quot;preference\&quot;:1556709820160}\n{\&quot;aggs\&quot;:{\&quot;2\&quot;:{\&quot;terms\&quot;:{\&quot;field\&quot;:\&quot;actions\&quot;,\&quot;size\&quot;:5,\&quot;order\&quot;:{\&quot;_count\&quot;:\&quot;desc\&quot;},\&quot;missing\&quot;:\&quot;__missing__\&quot;}}},\&quot;size\&quot;:0,\&quot;_source\&quot;:{\&quot;excludes\&quot;:[]},\&quot;stored_fields\&quot;:[\&quot;*\&quot;],\&quot;script_fields\&quot;:{},\&quot;docvalue_fields\&quot;:[{\&quot;field\&quot;:\&quot;access_token.user_token.expiration_time\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;canvas-workpad.@created\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;canvas-workpad.@timestamp\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;creation_time\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;expiration_time\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;maps-telemetry.timeCaptured\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;task.runAt\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;task.scheduledAt\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;updated_at\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;url.accessDate\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;},{\&quot;field\&quot;:\&quot;url.createDate\&quot;,\&quot;format\&quot;:\&quot;date_time\&quot;}],\&quot;query\&quot;:{\&quot;bool\&quot;:{\&quot;must\&quot;:[{\&quot;range\&quot;:{\&quot;canvas-workpad.@timestamp\&quot;:{\&quot;format\&quot;:\&quot;strict_date_optional_time\&quot;,\&quot;gte\&quot;:\&quot;2019-05-01T11:11:53.498Z\&quot;,\&quot;lte\&quot;:\&quot;2019-05-01T11:26:53.498Z\&quot;}}}],\&quot;filter\&quot;:[{\&quot;match_all\&quot;:{}},{\&quot;match_all\&quot;:{}}],\&quot;should\&quot;:[],\&quot;must_not\&quot;:[]}},\&quot;timeout\&quot;:\&quot;30000ms\&quot;}\n&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;request.id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;qrktsPxyST2nVh29GG7tog&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box;&quot;&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/advanced-tuning-finding-and-fixing-slow-elasticsearch-queries#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; display: block; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229); outline: none !important;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(0, 169, 229);&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 16px 0px 32px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; list-style: none; padding: 0px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/ul&gt;&lt;h2 style=&quot;box-sizing: border-box; margin: 0px; line-height: 40px; font-size: 32px; position: relative; font-family: Mierb, Inter, arial, sans-serif; padding-bottom: 16px;&quot;&gt;결론&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;이 블로그에서는 쿼리 속도 저하의 일반적인 원인과 이를 해결하는 방법에 대해 설명했습니다. 또한 일관되게 느린 쿼리와 가끔 느린 쿼리를 식별하기 위한 다양한 방법에 대해서도 논의했습니다. 일반적으로 쿼리 속도 저하는 해결해야 하는 광범위한 클러스터 성능 문제의 증상 중 하나입니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 16px; color: rgb(52, 55, 65); font-family: Inter, arial, sans-serif; font-size: 16px;&quot;&gt;Elasticsearch에서는&amp;nbsp;&lt;a href=&quot;https://github.com/elastic/elasticsearch/pull/23253&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;쿼리 시간을 개선&lt;/a&gt;하기 위해 끊임없이 노력하고 있으며 향후 릴리즈 버전에서 더 빠른 쿼리 성능을 제공하기 위한 작업을 진행 중입니다. 느린 쿼리를 처리할 때 이 게시물이 도움이 되길 바랍니다. 추가로 논의하고자 하는 내용이 있다면&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/c/elasticsearch&quot; style=&quot;box-sizing: border-box; color: rgb(0, 119, 204); text-decoration-line: underline; background-color: transparent; transition: all 300ms ease-in-out 0s; font-weight: 600; outline: none !important;&quot;&gt;Elasticsearch 토론 포럼&lt;/a&gt;에 문의를 남겨주십시오. 즐거운 검색 되세요!&lt;/p&gt;</description>
      <category>Blog</category>
      <category>Query</category>
      <category>Tunning</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/737</guid>
      <comments>https://drscg.tistory.com/737#entry737comment</comments>
      <pubDate>Fri, 25 Sep 2020 14:27:36 +0900</pubDate>
    </item>
    <item>
      <title>2020 직업능력개발훈련교사 자료</title>
      <link>https://drscg.tistory.com/736</link>
      <description>&lt;p&gt;# 성취도 평가 준비&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;교재의 충분한 정독&lt;/b&gt;: 교재 구석 구석에서 출제가 됩니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Mind Map&lt;/b&gt;(아래 link에서 다운) 암기: 교수님들의 강조 point&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;상식적으로 풀 수 있는 문제는 실습장 안전관리에 출제되는 문제 정도입니다.&lt;/li&gt;&lt;li&gt;online에 quiz로 나오는 문제, 기타에 나오는 문제들은 종합평가에 거의 나오지 않습니다.&lt;/li&gt;&lt;li&gt;이 문제들은 정리 정도로만 생각하셔야 합니다.&lt;/li&gt;&lt;li&gt;online에 quiz로 나오는 문제들처럼 단순한 문제는 몇 개정도만 출제됩니다.&lt;/li&gt;&lt;li&gt;사람 이름 등에서 외국어인 경우, 영문으로 나오는 경우가 있습니다. ex) 낙인효과 - stigma effect&lt;/li&gt;&lt;li&gt;거의 대부분의 문제가 &lt;b&gt;약간의 생각&lt;/b&gt;을 필요로 하니, &lt;b&gt;문제를 끝까지 신중하게&lt;/b&gt;&amp;nbsp;읽어봐야 합니다.&lt;/li&gt;&lt;li&gt;하루에 4번(오전: 2번, 오후: 2번), 인원을 나누어서 보았습니다.&lt;/li&gt;&lt;li&gt;오전 2번은 서로 문제가 비슷한 내용으로 출제가 되는 것으로 보입니다. 오후와는 차이가 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# 아래는 강의 들으면서 입수한 정보와 제가 정리한 내용을 모아둔 것입니다.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/sharejob2020/JobTrainingTeacher&quot; class=&quot;se-link&quot; target=&quot;_blank&quot; style=&quot;text-decoration-line: underline; margin: 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, sans-serif; vertical-align: baseline; text-decoration-skip-ink: none; word-break: break-all; white-space: pre-wrap; color: rgb(96, 140, 186) !important;&quot;&gt;https://github.com/sharejob2020/VocationalTrainingTeacher&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>JOB</category>
      <category>KOREATECH</category>
      <category>ncs</category>
      <category>Teacher</category>
      <category>Traning</category>
      <category>직업훈련교사</category>
      <category>직훈</category>
      <category>직훈교사</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/736</guid>
      <comments>https://drscg.tistory.com/736#entry736comment</comments>
      <pubDate>Tue, 15 Sep 2020 10:34:05 +0900</pubDate>
    </item>
    <item>
      <title>redis 4부 - jedis를 이용한 client sample ...</title>
      <link>https://drscg.tistory.com/669</link>
      <description>&lt;p&gt;이제 마지막이다.&lt;br /&gt;redis server를 다 설치했으니, 그곳에 data를 write하고 또 read해 보자.&lt;br /&gt;Java를 이용해, 간단한 sample을 만들어 보겠다.&lt;br /&gt;&lt;br /&gt;가장 많이 쓰이는 redis java library는 &lt;a href=&quot;https://github.com/xetorthio/jedis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jedis&lt;/a&gt; 라고 한다.&lt;br /&gt;글을 쓰고 있는 시점에서 가장 최신 버전인 3.0.1 을 첨부한다.&lt;br /&gt;또한, 관련 library인 Common Pool 2 library를 첨부한다.&lt;br /&gt;그리고, 입력한 data를 확인하기 위한, RedisDesktopManager for Windows를 첨부한다.&lt;br /&gt;&lt;br /&gt;jedis의 Java document는 &lt;a href=&quot;http://xetorthio.github.io/jedis/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://xetorthio.github.io/jedis/&lt;/a&gt;에서 볼수 있다.&lt;br /&gt;&lt;br /&gt;우리는 Sentinel을 이용한 replication을 사용하여, redis cluster를 구성하였다.&lt;br /&gt;그리고, Redis는 Master에만 data를 write할 수 있다고 언급한 바 있다.&lt;br /&gt;Sentinel은 Master가 down되면, Slave 중의 하나를 Master로 선발한다.&lt;br /&gt;&lt;br /&gt;따라서, 우리는 &lt;span style=&quot;color: #333333;&quot;&gt;redis cluster의 어느 것이&amp;nbsp;&lt;/span&gt;Master인지 알지 못한다. &lt;br /&gt;왜냐하면, redis master가 down되어, 다른 slave가 master가 되어 있을 가능성이 있기 때문이다.&lt;br /&gt;그렇다면 어디에서 알 수 있을까? 그렇다. Sentinel이다.&lt;br /&gt;&lt;br /&gt;redis의 ip나 port를 알 필요가 없다. Sentinel의 ip, port만 알고 있으면 된다.&lt;br /&gt;간단하게 shadow code를 작성해 보면 아래와 같다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Sentinel의 ip/port를 이용하여, JedisSentinelPool 을 구성한다.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. Master Redis 객체를 얻어온다 ( JedisSentinelPool.getResource() )&lt;/b&gt;&lt;br /&gt;&lt;b&gt;3. redis에 입/출력한다.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;4. JedisSentinelPool 을 제거한다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;real code는 다음과 같다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot;&gt;&lt;code&gt;import java.net.Socket;
import java.util.HashSet;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisSentinelPool;
import redis.clients.jedis.exceptions.JedisException;

public class Redis
{
	private	static	final	String	MASTER_NAME	= &quot;drscg.master&quot;;
	public	static	final	String	PASSWORD	= &quot;passw0rd&quot;;
	public	static	final	int		DATABASE	= 0;

	public static void main( String[] args )
	{
		HashSet&amp;amp;ltString&amp;amp;gt			oHashSetSetSentinel			= null;
		GenericObjectPoolConfig	oGenericObjectPoolConfig	= null;
		JedisSentinelPool		oJedisSentinelPool			= null;
		Jedis					oJedis						= null;
		Socket					oSocket						= null;
		String					strValue					= &quot;&quot;;

		// Sentinel의 ip와 port setting
		oHashSetSetSentinel = new HashSet&amp;amp;ltString&amp;amp;gt();
		oHashSetSetSentinel.add(&quot;10.0.0.1:17000&quot;);
		oHashSetSetSentinel.add(&quot;10.0.0.2:17000&quot;);
		oHashSetSetSentinel.add(&quot;10.0.0.4:17000&quot;);

		// Sentinel Pool에 연결한다.
		oGenericObjectPoolConfig = new GenericObjectPoolConfig();
		oJedisSentinelPool = new JedisSentinelPool(MASTER_NAME, oHashSetSetSentinel,
									oGenericObjectPoolConfig, 1000, PASSWORD, DATABASE);

		// set
		for ( int i = 0; i &amp;amp;lt 100; i++ )
		{
			try
			{
				// pool에서 jedis master를 가져온다.
				oJedis = oJedisSentinelPool.getResource();
				
				// master가 어떤 server인지 확인하기 위한 code
				oSocket = oJedis.getClient().getSocket();
				System.out.println(&quot;Connected to &quot; + oSocket.getRemoteSocketAddress());
				
				// set
				oJedis.set(&quot;foo_&quot; + i, &quot;bar_&quot; + i);
				System.out.println(&quot;set foo_&quot; + i);
			}
			catch ( JedisException ex)
			{
				ex.printStackTrace();
				break;
			}
			finally
			{
				// jedis 객체 반환
				oJedis.close();
			}
			
		}
		
		// get
		for ( int i = 0; i &amp;amp;lt 100; i++ )
		{
			try
			{
				// pool에서 jedis master를 가져온다.
				oJedis = oJedisSentinelPool.getResource();
				
				// master가 어떤 server인지 확인하기 위한 code
				oSocket = oJedis.getClient().getSocket();
				System.out.println(&quot;Connected to &quot; + oSocket.getRemoteSocketAddress());
				
				// get
				strValue = oJedis.get(&quot;foo_&quot; + i);
				System.out.println(&quot;get foo_&quot; + i + &quot;: [&quot; + strValue + &quot;]&quot;);
			}
			catch ( JedisException ex)
			{
				ex.printStackTrace();
				break;
			}
			finally
			{
				// jedis 객체 반환
				oJedis.close();
			}
			
		}
		
		// Sentinel Pool 반환
		oJedisSentinelPool.destroy();
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bPPW1N/btqufdpMMtp/nc0iNpoXlKPdCQ6FCre9X1/commons-pool2-2.4.3.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;commons-pool2-2.4.3.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.12MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/8opLm/btqucn1p8a3/p45EgDfR7flfgnioC5RzQK/jedis-3.0.1.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;jedis-3.0.1.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.56MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cGtubB/btqud5FxqwV/LJ5G7QwyjQIzmlkAlCTEDk/redis-desktop-manager-0.9.3.817.z01?attach=1&amp;amp;knm=tfile.z01&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;redis-desktop-manager-0.9.3.817.z01&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;5.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bbEVxh/btqudtfMEU3/yOSR25xucygiU7lvS9xQPk/redis-desktop-manager-0.9.3.817.z02?attach=1&amp;amp;knm=tfile.z02&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;redis-desktop-manager-0.9.3.817.z02&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;5.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/LBgSx/btqucnAmIqZ/h8XQ7ACYaU8opUDic31zJK/redis-desktop-manager-0.9.3.817.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;redis-desktop-manager-0.9.3.817.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.59MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>redis</category>
      <category>jedis</category>
      <category>redis</category>
      <category>sentinel</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/669</guid>
      <comments>https://drscg.tistory.com/669#entry669comment</comments>
      <pubDate>Mon, 8 Apr 2019 14:01:36 +0900</pubDate>
    </item>
    <item>
      <title>redis 3부 - Warning 제거 ...</title>
      <link>https://drscg.tistory.com/668</link>
      <description>&lt;p&gt;centos에서 redis를 설치하고, 실행을 하면, log 파일에서 다음과 같은 WARNING이 나타나는 경우가 있다.&lt;br /&gt;이를 제거해 보자.&lt;br /&gt;&lt;br /&gt;# WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.&lt;br /&gt;# WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.&lt;br /&gt;# WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &amp;nbsp;TCP backlog 경고&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.&lt;br /&gt;&lt;br /&gt;기본적인 소켓 accept limit 값이다. 보통 리눅스 배포판에는 128로 되어있고 이 때문에 tcp backlog 의 셋팅이 511 로 되어있지만 강제로 128로 적용 된다는 뜻이다.&lt;br /&gt;아래의 명령어로 1024 혹은 더욱 높은 값으로 설정해 준다. ( 최고는 65535 )&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# sysctl -w net.core.somaxconn=1024 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;# echo &quot;net.core.somaxconn=1024&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;확인 : sysctl -a | grep somaxconn&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. overcommit_memory 경고&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.&lt;br /&gt;&lt;br /&gt;메모리 이용에 관한 설정이다. 메모리 이용이 허용량보다 넘어 가게 될 경우 처리 방법이다.&lt;br /&gt;해결 방법은 아래의 명령어로 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# sudo sysctl vm.overcommit_memory=1&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# echo &quot;vm.overcommit_memory=1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;확인 : sysctl -a | grep vm.overcommit_memory&lt;br /&gt;&lt;br /&gt;관련 내용 : &lt;a href=&quot;https://www.kernel.org/doc/Documentation/vm/overcommit-accounting&quot;&gt;https://www.kernel.org/doc/Documentation/vm/overcommit-accounting&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. THP 경고&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.&lt;br /&gt;&lt;br /&gt;THP 기능이 Enable되어 있어 발생하는 warning이다.&lt;br /&gt;THP는 redis에서 문제가 발생할 수 있기 때문에 disable한다.&lt;br /&gt;그리고 재 부팅시 재설정을 변경하기 위해 /etc/rc.local 에 아래 명령어를 넣어 주도록 한다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled &lt;/b&gt;&lt;br /&gt;&lt;b&gt;# vi /etc/rc.local &lt;/b&gt;&lt;br /&gt;&lt;b&gt;echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;확인 : cat /proc/meminfo | grep AnonHugePages&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AnonHugePages 가 0 이면 정상&lt;br /&gt;&lt;br /&gt;THP 관련 내용 : &lt;a href=&quot;https://access.redhat.com/site/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory&quot;&gt;https://access.redhat.com/site/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4부에서는 java library인 jedis를 이용하는 방법을 알아보자.&lt;/p&gt;</description>
      <category>redis</category>
      <category>backlog</category>
      <category>memory</category>
      <category>overcommit</category>
      <category>redis</category>
      <category>TCP</category>
      <category>THP</category>
      <category>Warning</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/668</guid>
      <comments>https://drscg.tistory.com/668#entry668comment</comments>
      <pubDate>Mon, 8 Apr 2019 11:22:29 +0900</pubDate>
    </item>
    <item>
      <title>redis 2부 - replication ...</title>
      <link>https://drscg.tistory.com/667</link>
      <description>&lt;p&gt;지난 게시물인 redis 1부 - 설치에서는 stand alone으로 동작하도록 redis를 구성하였다.&lt;br /&gt;이렇게 stand alone으로 구성할 경우, failover 상황에 대한 대비가 전혀 되지 않는 문제점을 가지게 된다.&lt;br /&gt;이런 상황에 대비하기 위해, redis를 replication으로 구성해 보겠다.&lt;br /&gt;redis도 DB의 일종이고, 대부분의 open source DB와 마찬가지로 replication을 지원한다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. 전체 구성&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;일단, sample로 만들어볼 목표 시스템은 아래와 같이 구성할 것이다.&lt;br /&gt;이 예제에서는, 4대의 Machine에 Master 1개, Slave 3개, Sentinel 3개로 구성해 보겠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;M2.gif&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vX6My/btqucmVIGVa/vkWW2Kstd4kmoHLs1shzG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vX6My/btqucmVIGVa/vkWW2Kstd4kmoHLs1shzG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vX6My/btqucmVIGVa/vkWW2Kstd4kmoHLs1shzG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvX6My%2FbtqucmVIGVa%2FvkWW2Kstd4kmoHLs1shzG0%2Fimg.png&quot; data-filename=&quot;M2.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;2. 개념&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;위 그림에서 보이는 몇 가지 새로운 개념에 대해 알아보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;625&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot;&gt;Master&lt;/td&gt;
&lt;td width=&quot;512&quot;&gt;read/write 용 redis&lt;br /&gt;redis에서 Master는 하나만 존재할 수 있다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot;&gt;Salve&lt;/td&gt;
&lt;td width=&quot;512&quot;&gt;read only 용 redis, Master의 data를 mirror하고 있는 redis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;103&quot;&gt;Sentinel&lt;/td&gt;
&lt;td width=&quot;512&quot;&gt;redis의 Master와 Slave를 감시하다가, Master failover시에 새로운 Master를 지정&lt;br /&gt;Sentinel 자체에도 문제가 발생할 수 있기 때문에, 여러 대의 Sentinel로 구성.&lt;br /&gt;적어도 3개 이상, 홀수개로 구성해야 한다.&lt;br /&gt;Master를 지정하기 위해, Sentinel끼리 다수결로 결정&lt;br /&gt;위의 경우, Sentinel이 3대이므로, 2 이상의 표를 얻어야 master로 선정&lt;br /&gt;이 때, 숫자 2를 quorum이라 한다.&lt;br /&gt;quorum을 결정하는 수식 : (sentinel 의 수) / 2 + 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;3. replication의 구성&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;지난 1부애서 10.0.0.1에 설치한 redis를 master로 이용하겠다.&lt;br /&gt;그리고, master에 필요한 설정(masterauth)은 이미 했으니, slave만 구성하면 된다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;download and build&lt;/b&gt;&lt;br /&gt;1부에서 소개한 대로, direcory를 똑같이 구성하고, redis를 build 하자.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;setting&lt;/b&gt;&lt;br /&gt;1부에서 소개한 install_server.sh 을 실행해도 되지만, master(10.0.0.1)에 이미 생성해 둔게 있으니, 복사해서 이용하도록 하자. port는 master와 마찬가지로 16000 을 사용하지만, ip 는 각 machine에 맞게 변경해야 한다.&lt;br /&gt;&lt;br /&gt;master에서 아래 file을 복사해 오자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;/home/backup/redis/conf/redis_16000.conf&lt;/b&gt;&lt;br /&gt;&lt;b&gt;/etc/init.d/redis_16000&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;복사해 온 파일이 /home/backup/temp 에 있다고 가정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ ls -al /home/backup/temp&lt;/b&gt;&lt;br /&gt;-rwxr-xr-x &amp;nbsp;1 backup backup &amp;nbsp;1815 Apr &amp;nbsp;4 10:43 redis_16000&lt;br /&gt;-rw-r--r-- &amp;nbsp;1 backup backup 62494 Apr &amp;nbsp;4 10:42 redis_16000.conf&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;각 파일을 복사하자.&lt;br /&gt;redis_16000 file은 실행 파일이므로, 실행 권한이 있어야 한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ cp /home/backup/temp/redis_16000.conf /home/backup/redis/conf&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# cp /home/backup/temp/redis_16000 /etc/init.d/&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# chmod +x /etc/init.d/redis_16000&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;먼저, conf 파일을 수정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/conf/redis_16000.conf&lt;/b&gt;&lt;br /&gt;bind 10.0.0.2&lt;br /&gt;port 1600&lt;br /&gt;replicaof 10.0.0.1 16000&lt;br /&gt;requirepass 123!@#qwe&lt;br /&gt;masterauth 123!@#qwe&lt;br /&gt;loglevel notice&lt;br /&gt;dir /home/backup/redis/data/redis_16000&lt;br /&gt;pidfile /home/backup/redis/pid/redis_16000.pid&lt;br /&gt;logfile /home/backup/redis/log/redis_16000.log&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;주의할 부분은 3 곳이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;1226&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;185&quot;&gt;bind 10.0.0.2&lt;/td&gt;
&lt;td width=&quot;1031&quot;&gt;이 redis가 실행될 machine의 ip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;185&quot;&gt;replicaof 10.0.0.1 16000&lt;/td&gt;
&lt;td width=&quot;1031&quot;&gt;이 redis가 10.0.0.1 의 16000 에서 동작하고 있는 redis의 slave 라는 의미&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;185&quot;&gt;requirepass&lt;/td&gt;
&lt;td width=&quot;1031&quot;&gt;이 값은 master/slave에 동일하게 주어야 한다.&lt;br /&gt;slave도 상황에 따라 master가 될 수 있으므로 ...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;185&quot;&gt;masterauth&lt;/td&gt;
&lt;td width=&quot;1031&quot;&gt;replication시에 master에 접속하기 위해 사용하는 password&lt;br /&gt;master의 requirepass와 동일해야 한다.&lt;br /&gt;결론적으로, redis cluster에서 모든 master/slave의 requirepass와 masterauth는 동일한 값을 가져야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;그리고, service 파일을 수정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /etcc/init.d/redis_16000&lt;/b&gt;&lt;br /&gt;EXEC=/usr/local/bin/redis-server&lt;br /&gt;CLIEXEC=/usr/local/bin/redis-cli&lt;br /&gt;PIDFILE=/home/backup/redis/pid/redis_16000.pid&lt;br /&gt;CONF=&quot;/home/backup/redis/conf/redis_16000.conf&quot;&lt;br /&gt;REDISHOST=&quot;10.0.0.2&quot;&lt;br /&gt;REDISPORT=&quot;16000&quot;&lt;br /&gt;PASSWORD=&quot;123!@#qwe&quot;&lt;br /&gt;###############&lt;br /&gt;~~~&lt;br /&gt;$CLIEXEC -h $REDISHOST -p $REDISPORT -a $PASSWORD shutdown&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;주의할 부분은 REDISHOST=&quot;10.0.0.2&quot; 부분이다.&lt;br /&gt;conf 파일의 bind 부분에 설정한 ip를 입력하자.&lt;br /&gt;&lt;br /&gt;이제, service가 reboot시에도 자동 실행되도록 등록해 보자&lt;br /&gt;install_server.sh 를 이용하지 않았기 때문에, 등록되어 있지 않다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# chkconfig redis_16000 on&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# chkconfig --list | grep redis&lt;/b&gt;&lt;br /&gt;redis_16000 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0:off 1:off 2:on 3:on 4:on 5:on 6:off&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;위와 같은 작업을 각 slave에서 반복하자.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;execute&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;설치가 완료되면, 각 slave에서 redis를 시작해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_16000 start&lt;/b&gt;&lt;br /&gt;Starting Redis server...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;salve의 log 파일을 확인해 보면, 아래와 같이 나올 것이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/log/redis_16000.log&lt;/b&gt;&lt;br /&gt;7189:C 03 Apr 2019 12:51:48.521 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo&lt;br /&gt;7189:C 03 Apr 2019 12:51:48.521 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=7189, just started&lt;br /&gt;7189:C 03 Apr 2019 12:51:48.521 # Configuration loaded&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_._&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-``__ ''-._&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-`` &amp;nbsp;&amp;nbsp;&amp;nbsp;`. &amp;nbsp;`_. &amp;nbsp;''-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Redis 5.0.4 (00000000/0) 64 bit&lt;br /&gt;&amp;nbsp;.-`` .-```. &amp;nbsp;```\/ &amp;nbsp;&amp;nbsp;&amp;nbsp;_.,_ ''-._&lt;br /&gt;( &amp;nbsp;&amp;nbsp;&amp;nbsp;' &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.-` &amp;nbsp;| `, &amp;nbsp;&amp;nbsp;&amp;nbsp;) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running in standalone mode&lt;br /&gt;|`-._`-...-` __...-.``-._|'` _.-'| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Port: 16000&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;`._ &amp;nbsp;&amp;nbsp;&amp;nbsp;/ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PID: 7190&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;`-./ &amp;nbsp;_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;|`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-'|&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://redis.io&quot;&gt;http://redis.io&lt;/a&gt;&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-.__.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;|`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-'|&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-.__.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-'&lt;br /&gt;&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.531 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.531 # Server initialized&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.531 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.532 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fix this issue run the command 'echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reb &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oot. Redis must be restarted after THP is disabled.&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.532 * Ready to accept connections&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.532 * &lt;b&gt;Connecting to MASTER 10.0.0.1:16000&lt;/b&gt;&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.532 * MASTER &amp;lt;-&amp;gt; REPLICA sync started&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.532 * Non blocking connect for SYNC fired the event.&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.533 * Master replied to PING, replication can continue...&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.534 * Partial resynchronization not possible (no cached master)&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.539 * Full resync from master: d7f06da8d1b8fa4c7c6bcf1f51b342fee75beace:0&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.583 * MASTER &amp;lt;-&amp;gt; REPLICA sync: receiving 175 bytes from master&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.583 * MASTER &amp;lt;-&amp;gt; REPLICA sync: Flushing old data&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.584 * MASTER &amp;lt;-&amp;gt; REPLICA sync: Loading DB in memory&lt;br /&gt;7190:S 03 Apr 2019 12:51:48.584 * MASTER &amp;lt;-&amp;gt; REPLICA sync: Finished with success&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;위의 log를 보면 다음과 같은 log를 발견할 수 있다.&lt;br /&gt;Connecting to MASTER 10.0.0.1:16000&lt;br /&gt;10.0.0.1 의 16000에서 동작하고 있는 Master에 접속하려는 것을 알 수 있다.&lt;br /&gt;&lt;br /&gt;이번에는 Master의 log를 살펴보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/log/redis_16000.log&lt;/b&gt;&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.629 * &lt;b&gt;Replica 10.0.0.2:16000 asks for synchronization&lt;/b&gt;&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.629 * Partial resynchronization not accepted: Replication ID mismatch (Replica asked for 'df6282363217e236f2b81f60b64fc6af4781e92a', my replication &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDs are '671b47d3a3f4f9f224d78d462e24c4dd6aa4a869' and '0000000000000000000000000000000000000000')&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.629 * Starting BGSAVE for SYNC with target: disk&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.632 * Background saving started by pid 7948&lt;br /&gt;7948:C 03 Apr 2019 16:52:55.638 * DB saved on disk&lt;br /&gt;7948:C 03 Apr 2019 16:52:55.639 * RDB: 6 MB of memory used by copy-on-write&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.710 * Background saving terminated with success&lt;br /&gt;7917:M 03 Apr 2019 16:52:55.710 * &lt;b&gt;Synchronization with replica 10.0.0.2:16000 succeeded&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;요약하면, 10.0.0.2의 16000에서 sync 요청이 와서, sync 작업이 성공적으로 동작했다는 의미이다.&lt;br /&gt;&lt;br /&gt;그러면, command line client인 redis-cli를 이용하여, 접속해 보자.&lt;br /&gt;먼저, Master에 접속해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ redis-cli -h 10.0.0.1 -p 16000 -a 123\!@#qwe&lt;/b&gt;&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;info Replication&lt;/b&gt;&lt;br /&gt;# Replication&lt;br /&gt;&lt;b&gt;role:master&lt;/b&gt;&lt;br /&gt;&lt;b&gt;connected_slaves:3&lt;/b&gt;&lt;br /&gt;&lt;b&gt;slave0:ip=10.0.0.2,port=16000,state=online,offset=15511782,lag=1&lt;/b&gt;&lt;br /&gt;&lt;b&gt;slave1:ip=10.0.0.3,port=16000,state=online,offset=15511639,lag=1&lt;/b&gt;&lt;br /&gt;&lt;b&gt;slave1:ip=10.0.0.4,port=16000,state=online,offset=15511639,lag=1&lt;/b&gt;&lt;br /&gt;master_replid:671b47d3a3f4f9f224d78d462e24c4dd6aa4a869&lt;br /&gt;master_replid2:0000000000000000000000000000000000000000&lt;br /&gt;master_repl_offset:15511925&lt;br /&gt;second_repl_offset:-1&lt;br /&gt;repl_backlog_active:1&lt;br /&gt;repl_backlog_size:1048576&lt;br /&gt;repl_backlog_first_byte_offset:14463350&lt;br /&gt;repl_backlog_histlen:1048576&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;set foo_1 &quot;bar_1&quot;&lt;/b&gt;&lt;br /&gt;OK&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;get foo_1&lt;/b&gt;&lt;br /&gt;&quot;bar_1&quot;&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;role이 master이고, 3개의 salve가 있다는 것을 알 수 있다.&lt;br /&gt;set commnad를 이용해, &amp;lt;&quot;foo_1&quot;, &quot;bar_1&quot;&amp;gt;을 저장하고,&lt;br /&gt;get commnad를 이용해, data를 읽어 왔다.&lt;br /&gt;&lt;br /&gt;그 다음엔, Slave에 접속해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ redis-cli -h 10.0.0.2 -p 16000 -a 123\!@#qwe&lt;/b&gt;&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;10.0.0.2:16000&amp;gt; &lt;b&gt;info Replication&lt;/b&gt;&lt;br /&gt;# Replication&lt;br /&gt;&lt;b&gt;role:slave&lt;/b&gt;&lt;br /&gt;&lt;b&gt;master_host:10.0.0.1&lt;/b&gt;&lt;br /&gt;&lt;b&gt;master_port:16000&lt;/b&gt;&lt;br /&gt;master_link_status:up&lt;br /&gt;master_last_io_seconds_ago:0&lt;br /&gt;master_sync_in_progress:0&lt;br /&gt;slave_repl_offset:15499400&lt;br /&gt;slave_priority:100&lt;br /&gt;slave_read_only:1&lt;br /&gt;connected_slaves:0&lt;br /&gt;master_replid:671b47d3a3f4f9f224d78d462e24c4dd6aa4a869&lt;br /&gt;master_replid2:0000000000000000000000000000000000000000&lt;br /&gt;master_repl_offset:15499400&lt;br /&gt;second_repl_offset:-1&lt;br /&gt;repl_backlog_active:1&lt;br /&gt;repl_backlog_size:1048576&lt;br /&gt;repl_backlog_first_byte_offset:14450825&lt;br /&gt;repl_backlog_histlen:1048576&lt;br /&gt;10.0.0.2:16000&amp;gt; &lt;b&gt;get foo_1&lt;/b&gt;&lt;br /&gt;&quot;bar_1&quot;&lt;br /&gt;10.0.0.2:16000&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;role이 salve이고, master는 10.0.0.1의 16000 이라는 것을 알 수 있다.&lt;br /&gt;get commnad를 이용해, data를 읽어 오니, master에 입력한 data가 저장되어 있는 것을 볼 수 있다.&lt;br /&gt;replication은 정상적이다 라는 것을 알 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Sentinel의 구성&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;이제, replation 작업은 끝났다. &amp;nbsp;그러나, 이 상태로는 완전한 상태가 아니다.&lt;br /&gt;예를 들어, Master의 Redis가 down된다면, 이 Redis cluster는 data를 더 이상 write 할 수 없는 상태가 된다.&lt;br /&gt;위에서도 설명했지만, Sentinel이라는 것을 이용하여, Redis Cluster를 감시해야 한다.&lt;br /&gt;redis의 Master와 Slave를 감시하다가, Master failover시에 새로운 Master를 지정하는 것이 Sentinel의 역활이다.&lt;br /&gt;&lt;br /&gt;Sentinel은 또 다른 redis이다. conf 파일이 다를 뿐이다.&lt;br /&gt;1부에서 source 파일 압축을 푼 곳(/home/backup/redis/redis-5.0.4)에 가 보면, sentinel.conf 라는 file이 있다.&lt;br /&gt;이를 적당히 수정하여, conf 파일로 사용하면 된다.&lt;br /&gt;&lt;br /&gt;자, 애초 계획했던 대로, 3대의 Sentinel을 구성해 보자.&lt;br /&gt;10.0.0.1, 10.0.0.2, 10.0.0.4 에 설치하고, 17000 port를 사용할 것이다.&lt;br /&gt;Sentinel의 기본 port는 26379 인데, 기본을 좋아하지 않기 때문에 ... ^^&lt;br /&gt;&lt;br /&gt;&lt;b&gt;setting&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;원본 conf(sentinel.conf)를 redis의 conf direcory로 복사한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ cp /home/backup/redis/redis-5.0.4/sentinel.conf /home/backup/redis/conf/redis_sentinel_17000.conf&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;Sentinel의 conf 파일을 수정하자.&lt;br /&gt;파일을 열어서, 아래 내용에 해당하는 부분을 확인하고 수정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/conf/redis_sentinel_17000.conf&lt;/b&gt;&lt;br /&gt;bind 10.0.0.1&lt;br /&gt;port 17000&lt;br /&gt;daemonize yes&lt;br /&gt;loglevel notice&lt;br /&gt;sentinel monitor saerom.master 10.0.0.1 16000 2&lt;br /&gt;sentinel auth-pass saerom.master 123!@#qwe&lt;br /&gt;sentinel down-after-milliseconds saerom.master 10000&lt;br /&gt;sentinel parallel-syncs saerom.master 1&lt;br /&gt;sentinel failover-timeout saerom.master 180000&lt;br /&gt;pidfile &quot;/home/backup/redis/pid/redis_sentinel_17000.pid&quot;&lt;br /&gt;logfile &quot;/home/backup/redis/log/redis_sentinel_17000.log&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;각 항목은 아래와 같은 의미를 가지고 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;895&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;bind 10.0.0.1&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;Sentinel의 ip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;port 17000&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;Sentinel이 listen할 port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;daemonize yes&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;daemon으로 background에서 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;loglevel notice&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;log level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;sentinel monitor saerom.master 10.0.0.1 16000 2&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;saerom.master : Redis Master를 나타내는 임의의 alias&lt;br /&gt;10.0.0.1 16000 : Redis Master의 ip와 port&lt;br /&gt;2 : quorum, sentinel이 3대이므로 3 / 2 + 1 = 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;sentinel auth-pass saerom.master 123!@#qwe&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;Master의 requirepass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;sentinel down-after-milliseconds saerom.master 10000&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;이 시간동안 Redis Master로 연결이 안되면 Master Down으로 판단, 단위 : ms, Default : 30초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;sentinel parallel-syncs saerom.master 1&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;Slave가 여러 개일 경우 몇 개씩 동시에 Sync&lt;br /&gt;1이면 Salve 하나씩 순차적으로&lt;br /&gt;2 로 하면, 한번에 2개의 Slave가 Sync를 진행하므로 Master의 부하가 증가 &amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;sentinel failover-timeout saerom.master 180000&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;&lt;a href=&quot;http://redisgate.kr/redis/sentinel/sentinel_failover-timeout.php&quot;&gt;http://redisgate.kr/redis/sentinel/sentinel_failover-timeout.php&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;pidfile &quot;/home/backup/redis/pid/redis_sentinel_17000.pid&quot;&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;process id 파일의 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;348&quot;&gt;logfile &quot;/home/backup/redis/log/redis_sentinel_17000.log&quot;&lt;/td&gt;
&lt;td width=&quot;537&quot;&gt;log 파일의 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;Sentinel을 daemon으로 동작시키겠다라고 지정(daemonize yes)하였으므로, service로 등록하자.&lt;br /&gt;위에서 언급한 것처럼, Sentinel은 또 다른 redis이므로, redis의 service 파일을 복사한 후 수정해서 사용하면 된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# cp /etc/init.d/redis_16000 /etc/init.d/redis_sentinel_17000&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# vi /etc/init.d/redis_sentinel_17000&lt;/b&gt;&lt;br /&gt;EXEC=/usr/local/bin/redis-sentinel&lt;br /&gt;CLIEXEC=/usr/local/bin/redis-cli&lt;br /&gt;PIDFILE=/home/backup/redis/pid/redis_sentinel_17000.pid&lt;br /&gt;CONF=&quot;/home/backup/redis/conf/redis_sentinel_17000.conf&quot;&lt;br /&gt;REDISHOST=&quot;10.0.0.1&quot;&lt;br /&gt;REDISPORT=&quot;17000&quot;&lt;br /&gt;###############&lt;br /&gt;~~~&lt;br /&gt;$CLIEXEC -h $REDISHOST -p $REDISPORT shutdown&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;이제, service가 reboot시에도 자동 실행되도록 등록해 보자&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# chkconfig redis_sentinel_17000 on&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# chkconfig --list | grep redis&lt;/b&gt;&lt;br /&gt;redis_17000 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0:off 1:off 2:on 3:on 4:on 5:on 6:off&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;위와 같은 작업을 Sentinel을 설치할 Machine에서 반복하자.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;excute &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;각 Server에서 Sentinel을 모두 실행하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_sentinel_17000 start&lt;/b&gt;&lt;br /&gt;Starting Redis server...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;process 를 확인해 보자&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;&lt;span&gt;# ps -ef | grep redis&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7944 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &amp;nbsp;0 Apr03 ? &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:04:37 /usr/local/bin/redis-server 10.0.0.1:16000 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12409 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &amp;nbsp;0 10:53 ? &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00 /usr/local/bin/redis-sentinel 10.0.0.1:17000 [sentinel] &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;log를 확인해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ vi /home/backup/redis/log/redis_sentinel_17000.log&lt;/b&gt;&lt;br /&gt;12408:X 05 Apr 2019 10:53:45.536 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo&lt;br /&gt;12408:X 05 Apr 2019 10:53:45.536 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=12408, just started&lt;br /&gt;12408:X 05 Apr 2019 10:53:45.536 # Configuration loaded&lt;br /&gt;12409:X 05 Apr 2019 10:53:45.546 * Running mode=sentinel, port=7000.&lt;br /&gt;12409:X 05 Apr 2019 10:53:45.547 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.&lt;br /&gt;12409:X 05 Apr 2019 10:53:45.547 # Sentinel ID is 2f74bada2a3166fff7455cbb3e652a97e8074135&lt;br /&gt;12409:X 05 Apr 2019 10:53:45.548 # +monitor master saerom.master 10.0.0.1 16000 quorum 2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;10.0.0.1 의 16000 에서 동작하고 &amp;nbsp;있는 redis를 감시하고 있다는 것을 알 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;test&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;이제 설치, 설정, 실행 작업이 모두 끝났다. Sentinel을 설치한 효과가 있는지 확인해 보자.&lt;br /&gt;이를 위해 Master를 중시시키면 어떤 일이 일어나는지 살펴 보자.&lt;br /&gt;&lt;br /&gt;현재 Master인 10.0.0.1의 redis를 중지시키자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_16000 stop&lt;/b&gt;&lt;br /&gt;Stopping ...&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;Redis stopped&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;Sentinel의 log를 확인해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ vi /home/backup/redis/log/redis_sentinel_17000.log&lt;/b&gt;&lt;br /&gt;12409:X 05 Apr 2019 10:55:22.998 # &lt;b&gt;+sdown master saerom.master 10.0.0.1 16000&lt;/b&gt;&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.051 # +odown master saerom.master 10.0.0.1 16000 #quorum 2/2&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.051 # +new-epoch 1&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.051 # +try-failover master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.054 # +vote-for-leader 2f74bada2a3166fff7455cbb3e652a97e8074135 1&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.060 # 7c3f129a21af494fafb49ec6d7763f35e66667ec voted for 2f74bada2a3166fff7455cbb3e652a97e8074135 1&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.061 # a273c2a5611dd437c7bb2f0fcadb7ae5d456f84b voted for 2f74bada2a3166fff7455cbb3e652a97e8074135 1&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.125 # +elected-leader master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.125 # +failover-state-select-slave master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.207 # +selected-slave slave 10.0.0.2:16000 10.0.0.2 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.207 * +failover-state-send-slaveof-noone slave 10.0.0.2:16000 10.0.0.2 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.279 * +failover-state-wait-promotion slave 10.0.0.2:16000 10.0.0.2 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.302 # +promoted-slave slave 10.0.0.2:16000 10.0.0.2 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.302 # +failover-state-reconf-slaves master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:23.332 * +slave-reconf-sent slave 10.0.0.3:16000 10.0.0.3 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.155 # -odown master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.354 * +slave-reconf-inprog slave 10.0.0.3:16000 10.0.0.3 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.354 * +slave-reconf-done slave 10.0.0.3:16000 10.0.0.3 16000 @ saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.431 # +failover-end master saerom.master 10.0.0.1 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.431 # &lt;b&gt;+switch-master saerom.master 10.0.0.1 16000 10.0.0.2 16000&lt;/b&gt;&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.431 * +slave slave 10.0.0.3:16000 10.0.0.3 16000 @ saerom.master 10.0.0.2 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:24.431 * +slave slave 10.0.0.1:16000 10.0.0.1 16000 @ saerom.master 10.0.0.2 16000&lt;br /&gt;12409:X 05 Apr 2019 10:55:34.471 # +sdown slave 10.0.0.1:16000 10.0.0.1 16000 @ saerom.master 10.0.0.2 16000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;10.0.0.1의 redis가 down되었고, 10.0.0.2의 redis가 Master가 되었다는 것을 알 수 있다.&lt;br /&gt;&lt;br /&gt;10.0.0.2에 접속해, Master가 되었음을 확인할 수 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ redis-cli -h 10.0.0.2 -p 16000 -a 123\!@#qwe&lt;/b&gt;&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;10.0.0.2:16000&amp;gt; &lt;b&gt;info Replication&lt;/b&gt;&lt;br /&gt;# Replication&lt;br /&gt;&lt;b&gt;role:master&lt;/b&gt;&lt;br /&gt;&lt;b&gt;connected_slaves:2&lt;/b&gt;&lt;br /&gt;slave1:ip=10.0.0.3,port=16000,state=online,offset=15511639,lag=1&lt;br /&gt;slave1:ip=10.0.0.4,port=16000,state=online,offset=15511639,lag=1&lt;br /&gt;master_replid:671b47d3a3f4f9f224d78d462e24c4dd6aa4a869&lt;br /&gt;master_replid2:0000000000000000000000000000000000000000&lt;br /&gt;master_repl_offset:15511925&lt;br /&gt;second_repl_offset:-1&lt;br /&gt;repl_backlog_active:1&lt;br /&gt;repl_backlog_size:1048576&lt;br /&gt;repl_backlog_first_byte_offset:14463350&lt;br /&gt;repl_backlog_histlen:1048576&lt;br /&gt;10.0.0.2:16000&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;현재 상태에서, 10.0.0.1 의 redis를 다시 시작하면, 어떻게 될까?&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_16000 start&lt;/b&gt;&lt;br /&gt;Starting Redis server...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;Sentinel의 log를 확인해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ vi /home/backup/redis/log/redis_sentinel_17000.log&lt;/b&gt;&lt;br /&gt;12409:X 05 Apr 2019 10:58:12.662 # -sdown slave 10.0.0.1:16000 10.0.0.1 16000 @ saerom.master 10.0.0.2 16000&lt;br /&gt;12409:X 05 Apr 2019 10:58:22.640 * +convert-to-slave slave 10.0.0.1:16000 10.0.0.1 16000 @ saerom.master 10.0.0.2 16000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;10.0.0.1의 redis에 접속해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ redis-cli -h 10.0.0.1 -p 16000 -a 123\!@#qwe&lt;/b&gt;&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;info Replication&lt;/b&gt;&lt;br /&gt;# Replication&lt;br /&gt;&lt;b&gt;role:slave&lt;/b&gt;&lt;br /&gt;&lt;b&gt;master_host:10.0.0.2&lt;/b&gt;&lt;br /&gt;&lt;b&gt;master_port:16000&lt;/b&gt;&lt;br /&gt;master_link_status:up&lt;br /&gt;master_last_io_seconds_ago:0&lt;br /&gt;master_sync_in_progress:0&lt;br /&gt;slave_repl_offset:15499400&lt;br /&gt;slave_priority:100&lt;br /&gt;slave_read_only:1&lt;br /&gt;connected_slaves:0&lt;br /&gt;master_replid:671b47d3a3f4f9f224d78d462e24c4dd6aa4a869&lt;br /&gt;master_replid2:0000000000000000000000000000000000000000&lt;br /&gt;master_repl_offset:15499400&lt;br /&gt;second_repl_offset:-1&lt;br /&gt;repl_backlog_active:1&lt;br /&gt;repl_backlog_size:1048576&lt;br /&gt;repl_backlog_first_byte_offset:14450825&lt;br /&gt;repl_backlog_histlen:1048576&lt;br /&gt;10.0.0.1:16000&amp;gt; exit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;현재 slave로 동작하고 있고, Master는 10.0.0.2 이다.&lt;br /&gt;&lt;br /&gt;여기까지 replication 구성을 완료하였다.&lt;br /&gt;3부에서는 centos에서 redis를 실행했을 때 나타나는 경고 메세지에 대해서 알아보겠다.&lt;/p&gt;</description>
      <category>redis</category>
      <category>redis</category>
      <category>Replication</category>
      <category>sentinel</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/667</guid>
      <comments>https://drscg.tistory.com/667#entry667comment</comments>
      <pubDate>Mon, 8 Apr 2019 11:20:19 +0900</pubDate>
    </item>
    <item>
      <title>redis 1부 - 설치 ...</title>
      <link>https://drscg.tistory.com/666</link>
      <description>&lt;p&gt;redis는 Remote Dictionary Systerm의 약자로서 원격 케시 서버라 할 수 있다. NoSQL로 분류되기도 한다.&lt;br /&gt;Memory를 사용하여 고속으로 &amp;lt;Key, Value&amp;gt; 스타일의 data를 저장하고 가져올 수 있는 원격 시스템으로 정의할 수 있다.&lt;br /&gt;&lt;br /&gt;다양한 Data type(List, Set, Sorted Set, Hash, String등)을 지원하며, 당연하게도 Replication도 지원한다.&lt;br /&gt;&lt;br /&gt;이 게시물에서는 Redis의 설치 방법을 알아보자&lt;br /&gt;&lt;br /&gt;설치할 OS는 &lt;b&gt;CentOS 6.9&lt;/b&gt; 이다.&lt;br /&gt;redis는 windows, aix등의 OS에 대해 지원하지 않는다.&lt;br /&gt;이들 OS에 대한 binary는 다른 경로를 통해 구해야 한다고 들었다.&lt;br /&gt;&lt;br /&gt;ip: 10.0.0.1, port: 16000 으로 가정한다.&lt;br /&gt;redis는 기본적으로 6000 port를 사용하는데, 기본을 별로 좋아하지 않아서 ... ^^&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Directory&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;아래와 같은 directory 구조를 사용할 것이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;571&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;/home/backup/redis&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// redis 설치 home&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;conf&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// 설정 파일 *.conf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;data&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// data 파일 *.rdb&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;log&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// log 파일 *.log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;pid&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// process id *.id&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;redis-5.0.4&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// redis source file의 압축을 푼 directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;132&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width=&quot;109&quot;&gt;redis-5.0.4.tar.gz&lt;/td&gt;
&lt;td width=&quot;316&quot;&gt;// redis source file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;2. download and compile&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;redis는 source 형태로 배포되므로, 직접 build 해야 한다.&lt;br /&gt;아래 명령어에서 #으로 시작하는 command는 root 로 실행해야 한다.&lt;br /&gt;&lt;br /&gt;compiler와 필요한 library를 설치한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# yum install epel-release&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# yum install gcc jemalloc jemalloc-devel tcl&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;최신 source를 가져와 compile한다. 현재 redis 최신 버전은 5.0.4 이다.&lt;br /&gt;redis를 download해 build할 directory(redis)를 생성한다.&lt;br /&gt;이 directory에, 설정 파일, log, data를 저장하게 된다.&lt;br /&gt;압축을 풀고, build하고, 설치한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ cd /home/backup&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ mkdir redis&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ cd redis&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ wget &lt;a href=&quot;http://download.redis.io/releases/redis-5.0.4.tar.gz&quot;&gt;http://download.redis.io/releases/redis-5.0.4.tar.gz&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ tar xzf redis-5.0.4.tar.gz&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ ls -al&lt;/b&gt;&lt;br /&gt;drwxrwxr-x 6 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 15:59 redis-5.0.4&lt;br /&gt;-rw-rw-r-- 1 backup backup 1966337 Mar 19 01:29 redis-5.0.4.tar.gz&lt;br /&gt;&lt;b&gt;$ cd redis-5.0.4&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ make&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# make install&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;아래 경로에서 redis 실행 파일을 볼 수 있다.&lt;br /&gt;압축을 풀고, build하고, 설치한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ ls -al /usr/local/bin&lt;/b&gt;&lt;br /&gt;total 62096&lt;br /&gt;drwxr-xr-x. &amp;nbsp;2 root root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;1 14:51 .&lt;br /&gt;drwxr-xr-x. 18 root root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Dec &amp;nbsp;4 15:14 ..&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root &amp;nbsp;7925655 Jan &amp;nbsp;9 11:16 docker-compose&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root &amp;nbsp;9202963 Apr &amp;nbsp;1 14:51 redis-benchmark&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root 12266338 Apr &amp;nbsp;1 14:51 redis-check-aof&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root 12266338 Apr &amp;nbsp;1 14:51 redis-check-rdb&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root &amp;nbsp;9580080 Apr &amp;nbsp;1 14:51 redis-cli&lt;br /&gt;lrwxrwxrwx. &amp;nbsp;1 root root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12 Apr &amp;nbsp;1 14:51 redis-sentinel -&amp;gt; redis-server&lt;br /&gt;-rwxr-xr-x. &amp;nbsp;1 root root 12266338 Apr &amp;nbsp;1 14:51 redis-server&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;3. setting&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;위에서 생성한 direcory에 설정파일, log, data를 저장할 directory를 생성한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ pwd&lt;/b&gt;&lt;br /&gt;/home/backup/redis&lt;br /&gt;&lt;b&gt;$ mkdir conf data log pid&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ ls -al&lt;/b&gt;&lt;br /&gt;drwxrwxr-x 2 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 16:05 conf&lt;br /&gt;drwxrwxr-x 2 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 16:05 data&lt;br /&gt;drwxrwxr-x 2 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 16:05 log&lt;br /&gt;drwxrwxr-x 2 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 16:05 pid&lt;br /&gt;drwxrwxr-x 6 backup backup &amp;nbsp;&amp;nbsp;&amp;nbsp;4096 Apr &amp;nbsp;3 15:59 redis-5.0.4&lt;br /&gt;-rw-rw-r-- 1 backup backup 1966337 Mar 19 01:29 redis-5.0.4.tar.gz&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;port, 설정파일, log의 위치 등을 지정하고 이를 서비스로 등록하는 shell을 제공한다. 이를 실행해 보자.&lt;br /&gt;port 값은 해당 시스템에서 사용하지 않는 임의의 port를 사용하면 된다. 여기에서는 16000 port를 사용하겠다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;$ cd redis-5.0.4/utils&lt;/b&gt;&lt;br /&gt;&lt;b&gt;# ./install_server.sh&lt;/b&gt;&lt;br /&gt;Welcome to the redis service installer&lt;br /&gt;This script will help you easily set up a running redis server&lt;br /&gt;Please select the redis port for this instance: [6379] &lt;b&gt;16000&lt;/b&gt;&lt;br /&gt;Please select the redis config file name [/etc/redis/16000.conf] &lt;b&gt;/home/backup/redis/conf/redis_16000.conf&lt;/b&gt;&lt;br /&gt;Please select the redis log file name [/var/log/redis_16000.log] &lt;b&gt;/home/backup/redis/log/redis_16000.log&lt;/b&gt;&lt;br /&gt;Please select the data directory for this instance [/var/lib/redis/16000] &lt;b&gt;/home/backup/redis/data/redis_16000&lt;/b&gt;&lt;br /&gt;Please select the redis executable path [/usr/local/bin/redis-server] &lt;b&gt;enter&lt;/b&gt;&lt;br /&gt;Selected config:&lt;br /&gt;Port &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: 16000&lt;br /&gt;Config file &amp;nbsp;&amp;nbsp;&amp;nbsp;: /home/backup/redis/conf/redis_16000.conf&lt;br /&gt;Log file &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: /home/backup/redis/log/redis_16000.log&lt;br /&gt;Data dir &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: /home/backup/redis/data/redis_16000&lt;br /&gt;Executable &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: /usr/local/bin/redis-server&lt;br /&gt;Cli Executable : /usr/local/bin/redis-cli&lt;br /&gt;Is this ok? Then press ENTER to go on or Ctrl-C to abort. &lt;b&gt;enter&lt;/b&gt;&lt;br /&gt;Copied /tmp/16000.conf =&amp;gt; /etc/init.d/redis_16000&lt;br /&gt;Installing service...&lt;br /&gt;Successfully added to chkconfig!&lt;br /&gt;Successfully added to runlevels 345!&lt;br /&gt;Starting Redis server...&lt;br /&gt;Installation successful!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;이 shell을 실행시키면, 다음과 같은 결과를 얻을 수 있다.&lt;br /&gt;- 설정 파일 생성: /home/backup/redis/conf/redis_16000.conf&lt;br /&gt;- service로 등록 : /etc/init.d/redis_16000&lt;br /&gt;- 시스템 reboot시에 자동으로 시작되도록 등록&lt;br /&gt;&lt;br /&gt;그냥 실행해도 동작은 하겠지만, 향후 replication setting 그리고 보안 issue 해결을 위해, 몇 가지를 수정하자.&lt;br /&gt;&lt;br /&gt;먼저, redis의 conf 파일을 수정하자.&lt;br /&gt;conf 파일은 위의 install_server.sh 에서 지정한 위치에 있다.&lt;br /&gt;파일을 열어서, 아래 내용에 해당하는 부분을 확인하고 수정하자.&lt;br /&gt;각 line의 가장 앞에 #이 있으면, remark를 의미하니 유의하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/conf/redis_16000.conf&lt;/b&gt;&lt;br /&gt;bind 10.0.0.1&lt;br /&gt;port 16000&lt;br /&gt;requirepass 123!@#qwe&lt;br /&gt;masterauth 123!@#qwe&lt;br /&gt;loglevel notice&lt;br /&gt;dir /home/backup/redis/data/redis_16000&lt;br /&gt;pidfile /home/backup/redis/pid/redis_16000.pid&lt;br /&gt;logfile /home/backup/redis/log/redis_16000.log&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;각 항목은 아래와 같은 의미를 가지고 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;473&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;bind&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;redis 의 ip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;port&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;redis가 listen할 port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;requirepass&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;보안 설정, client가 접속시에 사용할 password&lt;br /&gt;replication시에 master에 접속하기 위한 password&lt;br /&gt;현재는 master이지만, 향후 slave가 될 경우에 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;masterauth&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;master의 requirepass와 동일해야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;loglevel&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;log level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;dir&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;data file의 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;pidfile&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;process id file의 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;115&quot;&gt;logfile&lt;/td&gt;
&lt;td width=&quot;348&quot;&gt;log file의 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;그리고, service를 확인해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# ls -al /etc/init.d/redis_16000&lt;/b&gt;&lt;br /&gt;-rwxr-xr-x 1 root root 1727 Apr &amp;nbsp;3 16:16 /etc/init.d/redis_16000&lt;br /&gt;# chkconfig --list | grep redis&lt;br /&gt;redis_16000 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0:off 1:off 2:on 3:on 4:on 5:on 6:off&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;service로 실행 시 나타날 수 있는 몇 가지 문제를 해결하기 위해, 해당 파일을 수정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /etcc/init.d/redis_16000&lt;/b&gt;&lt;br /&gt;EXEC=/usr/local/bin/redis-server&lt;br /&gt;CLIEXEC=/usr/local/bin/redis-cli&lt;br /&gt;PIDFILE=/var/run/redis_16000.pid&lt;br /&gt;CONF=&quot;/home/backup/redis/conf/redis_16000.conf&quot;&lt;br /&gt;REDISPORT=&quot;16000&quot;&lt;br /&gt;###############&lt;br /&gt;~~~&lt;br /&gt;$CLIEXEC -p $REDISPORT shutdown&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;파일을 열어보면, 위와 같이 보일 것이다. 아래 처럼 수정하자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;EXEC=/usr/local/bin/redis-server&lt;br /&gt;CLIEXEC=/usr/local/bin/redis-cli&lt;br /&gt;PIDFILE=/home/backup/redis/pid/redis_16000.pid&lt;br /&gt;CONF=&quot;/home/backup/redis/conf/redis_16000.conf&quot;&lt;br /&gt;REDISHOST=&quot;10.0.0.1&quot;&lt;br /&gt;REDISPORT=&quot;16000&quot;&lt;br /&gt;PASSWORD=&quot;123!@#qwe&quot;&lt;br /&gt;###############&lt;br /&gt;~~~&lt;br /&gt;$CLIEXEC -h $REDISHOST -p $REDISPORT -a $PASSWORD shutdown&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;4. execute&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;자. 설정 작업이 끝났다. redis를 시작해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_16000 start&lt;/b&gt;&lt;br /&gt;Starting Redis server...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;process를 확인해 보자&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# ps -ef | grep redis&lt;/b&gt;&lt;br /&gt;root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1423 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 &amp;nbsp;0 18:31 ? &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00 /usr/local/bin/redis-server 10.0.0.1:16000 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;root &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1428 &amp;nbsp;1253 &amp;nbsp;0 18:31 pts/0 &amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00 grep redis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;log 파일을 확인해 보면, 아래와 같이 나올 것이다. 그러면 잘 setting한 것이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# vi /home/backup/redis/log/redis_16000.log&lt;/b&gt;&lt;br /&gt;1367:C 03 Apr 2019 17:51:39.819 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo&lt;br /&gt;1367:C 03 Apr 2019 17:51:39.819 # Redis version=5.0.4, bits=64, commit=00000000, modified=0, pid=1367, just started&lt;br /&gt;1367:C 03 Apr 2019 17:51:39.819 # Configuration loaded&lt;br /&gt;1368:M 03 Apr 2019 17:51:39.820 * Increased maximum number of open files to 10032 (it was originally set to 1024).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_._&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-``__ ''-._&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-`` &amp;nbsp;&amp;nbsp;&amp;nbsp;`. &amp;nbsp;`_. &amp;nbsp;''-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Redis 5.0.4 (00000000/0) 64 bit&lt;br /&gt;&amp;nbsp;.-`` .-```. &amp;nbsp;```\/ &amp;nbsp;&amp;nbsp;&amp;nbsp;_.,_ ''-._&lt;br /&gt;( &amp;nbsp;&amp;nbsp;&amp;nbsp;' &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.-` &amp;nbsp;| `, &amp;nbsp;&amp;nbsp;&amp;nbsp;) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running in standalone mode&lt;br /&gt;|`-._`-...-` __...-.``-._|'` _.-'| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Port: 16000&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;`._ &amp;nbsp;&amp;nbsp;&amp;nbsp;/ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PID: 1368&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;`-./ &amp;nbsp;_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;|`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-'|&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;| &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://redis.io&quot;&gt;http://redis.io&lt;/a&gt;&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-.__.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;|`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-'|&lt;br /&gt;| &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;br /&gt;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-._`-.__.-'_.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-' &amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-._ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.-'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;`-.__.-'&lt;br /&gt;&lt;br /&gt;1368:M 03 Apr 2019 17:51:39.821 # Server initialized&lt;br /&gt;1368:M 03 Apr 2019 17:51:39.821 * DB loaded from disk: 0.000 seconds&lt;br /&gt;1368:M 03 Apr 2019 17:51:39.821 * Ready to accept connections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;그러면, command line client인 redis-cli를 이용하여, 접속해 보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# redis-cli -h 10.0.0.1 -p 16000 -a 123\!@#qwe&lt;/b&gt;&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;info Replication&lt;/b&gt;&lt;br /&gt;# Replication&lt;br /&gt;role:master&lt;br /&gt;connected_slaves:0&lt;br /&gt;master_replid:c45f6d4a00dadc41d44c5a17229540f7b0fce95c&lt;br /&gt;master_replid2:0000000000000000000000000000000000000000&lt;br /&gt;master_repl_offset:0&lt;br /&gt;second_repl_offset:-1&lt;br /&gt;repl_backlog_active:0&lt;br /&gt;repl_backlog_size:1048576&lt;br /&gt;repl_backlog_first_byte_offset:0&lt;br /&gt;repl_backlog_histlen:0&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;set foo bar&lt;/b&gt;&lt;br /&gt;OK&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;get foo&lt;/b&gt;&lt;br /&gt;&quot;bar&quot;&lt;br /&gt;10.0.0.1:16000&amp;gt; &lt;b&gt;exit&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;위에서 사용한 command를 간단히 설명하면 다음과 같다. &amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;731&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;282&quot;&gt;redis-cli -h 10.0.0.1 -p 16000 -a 123\!@#qwe&lt;/td&gt;
&lt;td width=&quot;439&quot;&gt;10.0.0.1의 16000에서 동작하는 redis에 password 123!@#qwe로 접속&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;282&quot;&gt;info Replication&lt;/td&gt;
&lt;td width=&quot;439&quot;&gt;Replication 정보&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;282&quot;&gt;set foo value&lt;/td&gt;
&lt;td width=&quot;439&quot;&gt;foo 라는 key와 bar 라는 value를 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;282&quot;&gt;get foo&lt;/td&gt;
&lt;td width=&quot;439&quot;&gt;foo 라는 key를 가진 vaule를 return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;282&quot;&gt;exit&lt;/td&gt;
&lt;td width=&quot;439&quot;&gt;종료&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;참고로, redis 종료 command는 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;1220&quot;&gt;&lt;b&gt;# service redis_16000 stop&lt;/b&gt;&lt;br /&gt;Stopping ...&lt;br /&gt;Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.&lt;br /&gt;Redis stopped&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;여기까지가, redis stand alone 설치 작업이 완료되었다.&lt;br /&gt;2부에서는, redis를 replacation으로 구성해 보겠다.&lt;/p&gt;</description>
      <category>redis</category>
      <category>install</category>
      <category>redis</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/666</guid>
      <comments>https://drscg.tistory.com/666#entry666comment</comments>
      <pubDate>Mon, 8 Apr 2019 11:19:00 +0900</pubDate>
    </item>
    <item>
      <title>2018.09.19 - 번역 - Time Series Data and MongoDB: Part 3 &amp;ndash; Querying, Analyzing, and Presenting Time-Series Data</title>
      <link>https://drscg.tistory.com/656</link>
      <description>&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-1-introduction&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Time Series Data and MongoDB: Part 1 – An Introduction&lt;/a&gt;&amp;nbsp;we reviewed the key questions you need to ask to understand query access patterns to your database. In&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-2-schema-design-best-practices&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Time Series Data and MongoDB: Part 2 – Schema Design Best Practices&lt;/a&gt;&amp;nbsp;we explored various schema design options for time-series data and how they affect MongoDB resources. In this blog post we will cover how to query, analyze and present time-series data stored in MongoDB. Knowing how clients will connect to query your database will help guide you in designing both the data model and optimal database configuration. There are multiple ways to query MongoDB. You can use native tools such as the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/mongo/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Shell&lt;/a&gt;&amp;nbsp;command line and&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/compass&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Compass a GUI-based query tool&lt;/a&gt;. Programmatically MongoDB data is accessed via an extensive list of&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB drivers&lt;/a&gt;. There are drivers available for practically all the major programming languages including C#, Java, NodeJS, Go, R, Python, Ruby, and many others.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://drscg.tistory.com/654&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 1 – An Introduction&lt;/a&gt;&amp;nbsp;에서, database에 대한 query access pattern을 이해하기 위해 질문해야 할 핵심 질문을 검토했다.&amp;nbsp;&lt;a href=&quot;https://drscg.tistory.com/655&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 2 – Schema Design Best Practices&lt;/a&gt;&amp;nbsp;에서는, 시계열 data에 대한 다양한 schema design과 이것이 MongoDB에 미치는 영향을 조사했다. 이&amp;nbsp;게시물에서는,&amp;nbsp; MongoDB에 저장된 시계열 data를 query, 분석, 표시하는 방법을 설명할 것이다. client에서 database를 query하기 위해 연결하는 방법을 알면, data model과 최적의 database 구성을 design하는데 도움이 될 것이다. MongoDB를 query하는 방법은 여러가지가 있다.&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/mongo/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Shell&lt;/a&gt;&amp;nbsp;command line과&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/compass&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;GUI 기반의 query tool인 MongoDB Compass&lt;/a&gt;&amp;nbsp;같은&amp;nbsp; 기본 tool을 사용할 수 있다. 많은 &lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB drivers&lt;/a&gt;&amp;nbsp;를 통해 프로그래밍 방식으로 MongoDB data를 access한다. C#, Java, NodeJS, Go, R, Python, Ruby 등 사실상 모든 주요 프로그래밍 언어에서 이용할 수 있는 driver가 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB also provides third-party BI reporting tool integration through the use of the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/bi-connector/v2.0/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB BI Connector&lt;/a&gt;. Popular SQL-based reporting tools like Tableau, Microsoft PowerBI, QlikView, and TIBCO Spotfire can leverage data directly in MongoDB without the need to ETL data into another platform for querying.&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/charts&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Charts&lt;/a&gt;, currently in Beta, provides the fastest way to visualize your MongoDB data without the need for third party products or flattening your data so that it can be read by SQL-bases BI tool.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;또한, MongoDB는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/bi-connector/v2.0/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB BI Connector&lt;/a&gt;를 이용하여, 타사 BI reporting tool 통합을 제공한다. Tableau, Microsoft PowerBI, QlikView, TIBCO Spotfire 같은 인기있는 SQL 기반의 reporting tool은 query로 또 다른 platform에 ETL data를 추출할 필요 없이, MongoDB에서 직접 data를 활용할 수 있다. 현재는 베타 버전이지만,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/charts&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Charts&lt;/a&gt;는, SQL 기반의 BI tool에서 읽을 수 있도록 타사 제품이나 data을 평면화하지 않고, MongoDB data를 시각화하는 가장 빠른 방법을 제공한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In this blog we will cover querying, analyzing and presenting time-series data using the tools described above.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물에서는 위에서 언급한 tool을 사용하여, 시계열 data를 query, 분석, 표시하는 방법을 다룰 것이다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Querying with Aggregation Framework&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/aggregation/&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Aggregation Framework&lt;/a&gt;&amp;nbsp;allows developers to express functional pipelines that perform preparation, transformations, and analysis of data. This is accomplished through the use of stages which perform specific actions like grouping, matching, sorting, or shaping the data. Data flowing through the stages and its corresponding processing is referred to as the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/aggregation-pipeline/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Aggregation Pipeline&lt;/a&gt;. Conceptually it is similar to the data flow through a Unix shell command line pipeline. Data gets input from the previous stage, work is performed and the stage’s output serves as input to the next processing stage until the pipeline ends. Figure 1 shows how data flows through a pipeline that consists of a match and group stage.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;개발자는 &lt;a href=&quot;https://docs.mongodb.com/manual/aggregation/&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Aggregation Framework&lt;/a&gt;를 사용하여, data의 준비, 변환, 분석을 수행하는 기능적 pipeline을 구현할 수 있다. 이는 data의 grouping, matching, sorting, shaping 같은 특정 작업을 수행하는 stage를 사용하여 수행된다. stage를 통해 흐르는 data와 해당 처리를&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/aggregation-pipeline/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Aggregation Pipeline&lt;/a&gt;&amp;nbsp;이라 한다. 개념적으로, Unix shell command line pipeline을 통한 data 흐름과 유사하다. data는 이전 stage에서 input을 얻고, 작업을 수행하고, stage의 output은 pipeline이 끝날 때까지 다음 처리 stage의 input으로 사용된다. 그림 1은 match와 group stage로 구성된 pipeline을 통한 data 흐름을 보여준다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/aggpipeline-8s8shlnlun.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 1: Sample data flows through the Aggregation Pipeline&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;$match is the first stage In this two stage pipeline. $match will take the entire orders collection as an input and provide as an output a filter with the list of documents where the field, “status” contains the “A” value. The second stage will take these filtered documents as input and perform a grouping of the data to produce the desired query result as an output. While this is a simple example keep in mind that you can build out extremely sophisticated processing pipelines leveraging 100+ operators over 25 different stage classes allowing you to do things like transformations, redacting, sorting, grouping, matching, faceted searches, graph traversals, and joins between different collections to name a few. You can work with data in ways that are just impossible with other distributed databases.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;$match는 2개의 stage를 가진 이 pileline의 첫 번째 stage이다. $match는 전체 orders collection을 input으로 사용하고, “status” field가 &quot;A&quot;를 가진 document의 목록을 가진 filter를 output으로 제공한다. 2번째 stage는 이들 filter된 document를 input으로 하고, 원하는 query 결과를 만들기 위해 data를 group화 하여 output으로 한다. 이것은 간단한 예제지만, 변환, 수정, 정렬, 그룹화, 일치, facet 검색, graph 운영, 다른 collection간의 join 등을 할 수 있도록, 25개 이상의 다른 stage에 100개 이상의 연산자를 활용하는 메우 복잡한 process pipeline을 구축할 수 있다는 점을 기억하자. 다른 분산 database에서는 불가능한 방식으로 data를 사용할 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;With our time-series data we are going to use MongoDB Compass to issue an ad-hoc query that finds the day high price for a given stock. Compass is the GUI tool that allows you to easily explore your data. A useful feature is the ability to visually construct an aggregation pipeline by assembling stages onto a canvas, and then exporting the resultant pipeline as a code for copying and pasting into your app.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;우리의 시계열 data를 가지고 MongoDB Compass를 사용하여 특정 주식에 대해 당일 최고가를 찾는 query를 할 것이다. compass는 data를 쉽게 탐색할 수 있는 GUI tool이다. 유용한 기능은 canvas에서 stage를 조합하고, 그 결과로 만들어진 pipeline을 code로 export하여, app에 복사하고 붙여넣음으로써, 집계 pipeline을 시각적으로 구성하는 능력이다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Finding day high for a given stock&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Before diving into the query itself, recall that our&amp;nbsp;&lt;a href=&quot;https://github.com/RWaltersMA/StockPriceGenerator&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;StockGen application&lt;/a&gt;, described in&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-2-schema-design-best-practices&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;part 2&lt;/a&gt;&amp;nbsp;of this blog series, produced 1 month of stock price data for 5 stocks we wanted to track. One of the two collections created is called, “StockDocPerMinute” (PerMinute) and it contains a document that represents a minute of data for a specific stock symbol as shown in Figure 2.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;query 자체로 들어 가지전에,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-2-schema-design-best-practices&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;part 2&lt;/a&gt;&amp;nbsp;에서 설명한&amp;nbsp;&lt;a href=&quot;https://github.com/RWaltersMA/StockPriceGenerator&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;StockGen application&lt;/a&gt;이 우리가 추적하려는 5개 주식의 1개월 분량의 주가 data를 생성했다는 점을 기억하자. 생성된 2개의 collection 중 하나인 “StockDocPerMinute” (PerMinute)은 그림 2에서 보듯이 특정 주식 기호에 대한 특정 분(minute)에 대한 data를 나타내는 document를 가지고 있다.&lt;/p&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
{
            &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt; : ObjectId(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;5b57a8fae303d36d6df69cd3&quot;&lt;/span&gt;),
            &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt; : {
                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;0&quot;&lt;/span&gt; : 58.75,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;1&quot;&lt;/span&gt; : 58.75,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2&quot;&lt;/span&gt; : 59.45,
...up to…
                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;58&quot;&lt;/span&gt; : 58.57,
                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;59&quot;&lt;/span&gt; : 59.01
            },
            &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;FB&quot;&lt;/span&gt;,
            &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-07-14T00:00:00Z&quot;&lt;/span&gt;)
}
&lt;/code&gt;
&lt;/pre&gt;&lt;p&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 2: Sample StockDocPerMinute document&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Consider the scenario where the application requests the day high price for a given stock ticker over time. Without the Aggregation Framework this query would have to be either accomplished by retrieving all the data back into the app and using client side code to compute the result, or by defining a map-reduce function in Javascript. Both options are not optimal from a performance or developer productivity perspective.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;application이 시간에 따라 주어진 주식 시세에 대해 당일 최고가를 요청하는 시나리오를 생각해 보자. Aggregation Framework가 없다면, 이 query는 모든 data를 app에서 가져와 client측 code를 사용하여 결과를 계산하는 계산하거나, Javascript에서 map-reduce를 정의해야 가능하다. 두 option 모두 성능이나 개발자 생산성 측면에서 최적이 아니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Notice the sample document has a subdocument which contains data for an entire minute interval. Using the Aggregation Framework we can easily process this subdocument by transforming the subdocument into an array using the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/operator/aggregation/objectToArray/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;$objectToArray&lt;/a&gt;&amp;nbsp;expression, calculating the maximum value and projecting the desired result.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin-top: 15px; margin-right: 0px; margin-bottom: 15px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;예제 document는 전체 분 간격으로, data를 포함하고 있는 하위 document를 가지고 있다. Aggregation Framework를 사용하면,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/operator/aggregation/objectToArray/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;$objectToArray&lt;/a&gt;&amp;nbsp;를 사용하여, 하위 document를 array로 변경하고, 최대값을 계산하고, 원하는 결과를 예측함으로써, 이 하위 document를 쉽게 처리할 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Using MongoDB Compass we can build out the query using the Aggregation Pipeline Builder as follows:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB Compass를 사용하여, 다음과 같이 Aggregation Pipeline Builder를 사용하는 query를 만들 수 있다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Querying-PerMinute-Stage1-gddm2yz7ic.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 3: First stage is $match stage&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Querying-PerMinute-Stage2-wv2jlaq3mx.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 4: Second stage is the $project stage&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Querying-PerMinute-Stage3-uf4yort02a.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 5: Third stage is the $addFields stage&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Querying-PerMinute-Stage4-ryjf0ewc5d.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 6: Fourth stage is the $group stage&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Querying-PerMinute-Stage5-t7x8a7cxxg.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 7: Fifth stage is the $sort stage&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;We can see the output of the last stage is showing the maximum value per day for each day. Using the aggregation pipeline builder we didn’t need to write a single line of code. For reference, the complete query built by MongoDB Compass in the previous figures is as follows:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;마지막 stage의 output이 각 날짜별로 최대값을 보여줌을 알 수 있다. Aggregation Pipeline Builder를 사용하면, code를 한 line씩 작성하지 않아도 된다. 참고로 앞의 그림에서, MongoDB Compass가 작성한 전체 query는 다음과 같다.&lt;/p&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
db.getCollection(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;'StockDocPerMinute'&lt;/span&gt;).aggregate([
  { &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$match&lt;/span&gt;: { &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;FB&quot;&lt;/span&gt; } },
  {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$project&lt;/span&gt;&quot;&lt;/span&gt;: 
{ 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;year&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$year&lt;/span&gt;&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$d&lt;/span&gt;&quot;&lt;/span&gt;}, 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;month&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$month&lt;/span&gt;&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$d&lt;/span&gt;&quot;&lt;/span&gt;}, 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;dayOfMonth&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$dayOfMonth&lt;/span&gt;&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$d&lt;/span&gt;&quot;&lt;/span&gt;},
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$objectToArray&lt;/span&gt;&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$p&lt;/span&gt;&quot;&lt;/span&gt;},
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Symbol&quot;&lt;/span&gt;:1
} },
    {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$addFields&lt;/span&gt;&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;tmax&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$max&lt;/span&gt;&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;'$p.v'&lt;/span&gt;}}},
    {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$group&lt;/span&gt;&quot;&lt;/span&gt;: {
                            _id: {           
                                year: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;'$year'&lt;/span&gt;,
                                month: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;'$month'&lt;/span&gt;,
                                dayOfMonth: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;'$dayOfMonth'&lt;/span&gt;
                            },
                            &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;DayMax&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$max&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$tmax&lt;/span&gt;&quot;&lt;/span&gt;},
                            }
                        },
   {&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$sort&lt;/span&gt;: {_id: -1}}
])
&lt;/code&gt;
&lt;/pre&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Leveraging Views&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB read-only views can be created from existing collections or from other views. These views act as read-only collections, and are computed on demand during read operations. Since they appear as another collection, you can add a layer of security by restricting access to the underlying collections of the view and just give the client read access to the view. If you want to learn more about access control with Views read the blog post, “&lt;a href=&quot;https://www.mongodb.com/blog/post/providing-least-privileged-data-access-in-mongodb&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Providing Least Privilege Access to MongoDB data&lt;/a&gt;”.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;기존 collection이나 다른 view에서 MongoDB 읽기 전용 view를 생성할 수 있다. 이 view는 읽기 전용 collection으로 동작하며, read 작업 중에 필요에 따라 계산된다. 이것은 또 다른 collection으로 표시되므로, view의 기반 collection에 대한 access를 제한하거나 view에 client read access를 부여하여, 보안 계층을 추가할 수 있다. view에 대한 access control에 대해 더 많은 정보가 필요하다면, “&lt;a href=&quot;https://www.mongodb.com/blog/post/providing-least-privileged-data-access-in-mongodb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Providing Least Privilege Access to MongoDB data&lt;/a&gt;”를 읽어 보자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;To see how views are created, consider the scenario where the user wants to query stock price history. We can create a view on the StockDocPerMinute collection using the createView syntax as follows:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;view를 작성하는 방법을 알아보기 위해 사용자가 주가 기록을 query하는 시나리오를 생각해 보자. 다음과 같이 createView를 사용하여, StockDocPerMinute collection에 view를 생성할 수 있다.&lt;/p&gt;&lt;pre class=&quot;hljs perl&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
db.createView(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;ViewStock&quot;&lt;/span&gt;,&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;StockDocPerMinute&quot;&lt;/span&gt;, 
[
{&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$project&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$objectToArray&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$p&quot;&lt;/span&gt;}, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1&lt;/span&gt;, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1&lt;/span&gt;}},
{&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$unwind&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$p&quot;&lt;/span&gt;},
{&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$project&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Timestamp&quot;&lt;/span&gt;: {
   &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$dateFromString&quot;&lt;/span&gt;: {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;dateString&quot;&lt;/span&gt;:
                           {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$concat&quot;&lt;/span&gt;: [{&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$dateToString&quot;&lt;/span&gt;:
                                             {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;format&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;%Y-%m-%dT%H:%M:&quot;&lt;/span&gt;,
                                              &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;date&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$d&quot;&lt;/span&gt;}},
                                        {&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$concat&quot;&lt;/span&gt;: [&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$p.k&quot;&lt;/span&gt;, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Z&quot;&lt;/span&gt;]}]}}}, 
                                        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;price&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;$p.v&quot;&lt;/span&gt;}}
                                    ])
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;As MongoDB read-only views are materialized at run-time,the latest results are available with each query. Now that the view is defined it can be accessed just like any other collection. For example, to query the first price entry for the “FB” stock using the view we can issue :&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;run-time에 MongoDB 읽기 전용 view가 구체화되면, 각 query에서 최신 결과를 이용할 수 있다. 이제, view가 정의되었으므로, 다른 collection처럼 access할 수 있다. 예를 들어, view를 사용하여, &quot;FB&quot; 주식의 첫번째 가격을 query하려면 다음과 같이 할 수 있다.&lt;/p&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
db.ViewStock.find({ &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;FB&quot;&lt;/span&gt; } ) .sort({d:-1}).&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;limit&lt;/span&gt;(1)
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;You can also use the aggregation framework with views. Here is the query for all “FB” stock ticker data for a specific day.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;view에서 Aggregation Framework를 사용할 수도 있다. 특정 일자의 모든 &quot;FB&quot; 주식 시세 data에 대한 query이다.&lt;/p&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
db.ViewStock.aggregate({ &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$match&lt;/span&gt;: { 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;FB&quot;&lt;/span&gt;,
 &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Timestamp&quot;&lt;/span&gt; : { &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$gte&lt;/span&gt;: ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-26&quot;&lt;/span&gt;), &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$lt&lt;/span&gt;: ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-27&quot;&lt;/span&gt;) }}},
 { &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$sort&lt;/span&gt;: { &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Timestamp&quot;&lt;/span&gt;: -1 }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Querying time-series data with third-party BI Reporting tools&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Users may want to leverage existing investments in third-party Business Intelligence Reporting and Analytics tools. To enable these SQL-speaking tools to query data in MongoDB, you can use intermediary service called the MongoDB BI Connector.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;사용자가 타사 Business Intelligence Reporting and Analytics tool에서 기존의 투자정보를 활용하려 할 수도 있다. 이들 SQL 사용 tool이 MongoDB data를 query할 수 있게 하려면, MongoDB BI Connector라는 중간 service를 사용할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/biconnector2-h61kv8vhkz.jpg&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 8: Query MongoDB data with your favorite SQL-based reporting tools using the BI Connector&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The BI Connector service presents a port that resembles a MySQL Server to the client application and accepts client connections issuing SQL queries. The BI Connector service then translates these queries into the MongoDB Query Language (MQL) and submits the query to the MongoDB database. Results are returned from MongoDB and flattened into a tabular structure and sent back to the SQL speaking client. This flow is seen in detail in Figure 8.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;BI Connector service는 MySQL Server와 유사한 port를 client에 제공하고, SQL query를 실행하는 client 연결을 허용한다.그런 다음, BI Connector services는 이들 query를 MongoDB Query Language(MQL)로 변경하고, MongoDB database에 query를 전송한다. 결과가 MongoDB에서 return되고, table 구조로 전개되어, SQL을 사용하는 client로 다시 전송된다. 자세한 구조는 그림 8에서 볼 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;To illustrate the MongoDB BI Connector in action, let’s consume our time-series data with Tableau Desktop and the MongoDB BI Connector. Tableau Desktop has a connection option for MongoDB. Using that option and connecting to the port specified in the BI Connector we see that Tableau enumerates the list of tables from our MongoDB database in Figure 9.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB BI Connector의 실제 동작을 설명하기 위해, ableau Desktop와 MongoDB BI Connector를 사용하여 시계열 data를 살펴보자. Tableau Desktopdms MonogoDB를 위한 연결 option을 가지고 있다. 해당 option을 사용하여, BI Connector에 지정한 port로 연결하면, 그림 9처럼 MongoDB database로 부터 table 목록을 열거하는 것을 볼 수 있다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Tableau-1-9xz8ggcph7.jpg&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 9: Data Source view in Tableau showing information returned from MongoDB BI Connector&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;These tables are really our collections in MongoDB. Continuing with the Worksheet view in Tableau we can continue and build out a report showing price over time using the View we created earlier in this document.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이들 table은 실제로 MongoDB의 collection이다. Tableau에서 Worksheet view를 계속해 보면, 앞에서 생성한 view를 사용하여, 시간별 가격을 보여주는 report를 작성할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Tableau-2-v8xg4pyysg.jpg&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;FIgure 10: Sample Tableau worksheet showing price over time&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;MongoDB Charts&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The fastest way to visualize data in MongoDB is with&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/charts&quot; alt=&quot;MongoDB Charts&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Charts&lt;/a&gt;. Currently available in Beta it provides users with a web console where they can build and run reports directly from data stored in MongoDB. With Charts there is no special service that needs to run in order to query MongoDB. There is also no need to move the data out or transform it into a different format to be queried. Data can be queried directly as rich documents stored MongoDB. As with other read-only connections, you can connect Charts to secondary replica nodes, therefore isolating analytics and reporting queries from the rest of the cluster serving the operational time series apps. To see how MongoDB Charts can represent data from the StockGen tool, check out the price over time line graph as shown in Figure 11.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB에서 data를 시각화할 수 있는 가장 빠른 방법은&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/charts&quot; alt=&quot;MongoDB Charts&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Charts&lt;/a&gt;를 사용하는 것이다. 현재 베타 버전을 이용할 수 있으며, MongoDB에 저장된 data에서 직접 report를 작성하고 실행할 수 있는 web console을 사용자에게 제공한다. chart에는 MongoDB를 query하기 위해 실행해야 하는 특별한 service가 없다. 또한 data를 다른 곳으로 이동하거나 query할 다른 형태로 변환할 필요가 없다. data는 MongoDB에 저장된 rich documennt로 바로 query될 수 있다. 다른 읽기 전용 connection과 마찬가지로, chart를 secondary replica node에 연결할 수 있어, 시계열 시리즈의 app을 제공하는 cluster에서 분석 및 report query를 분리할 수 있다. MongoDB Chart가 StockGen tool의 data를 표시하는 방법을 보려면, 그림 11에서 보여주는 시간별 가격 line graph를 확인하자.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/Charts-1-pnhmjcxcls.jpg&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 11: MongoDB Charts showing price over time&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;At the time of this writing MongoDB Charts is in Beta, therefore details and screenshots may vary from with the final release.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 글을 스는 시점에서 MongoDB Chart는 베타 버전이므로, 자세한 내용과 screenshot은 최종 버전과 다를 수 있다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Analytics with MongoDB&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In addition to issuing advanced analytics queries with the MongoDB Aggregation Framework, the&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/spark-connector&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Connector for Apache Spark&lt;/a&gt;&amp;nbsp;exposes all of Spark’s libraries, including Scala, Java, Python and R. This enables you to use the Spark analytics engine for big data processing of your time series data extending analytics capabilities of MongoDB even further to perform real-time analytics and machine learning. The connector materializes MongoDB data as DataFrames and Datasets for analysis with machine learning, graph, streaming, and SQL APIs. The Spark connector takes advantage of MongoDB’s aggregation pipeline and rich secondary indexes to extract, filter, and process only the range of data you need! No wasted time extracting and loading data into another database in order to query your MongoDB data using Spark!&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB Aggregation Framework을 사용하여 고급 분석 query를 실행하는 것 외에도,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/products/spark-connector&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Connector for Apache Spark&lt;/a&gt;는 Scala, Java, Python, R을 포함한 모든 Spark library를 제공한다. 이를 통해, 시계열 data의 Bigdata 처리에 Spark 분석 엔진을 사용할 수 있고, MongoDB의 분석 기능을 더욱 확장하여 실시간 분석과 Machine Learning을 할 수 있다. connector는 MongoDB data를 Machine Learning, graph, streaming, SQL API로 분석하기 위한 DataFrame과 Dataset으로 구체화한다. Spark connector는 MongoDB의 aggregation pipeliner과 secondary index를 활용하여, 필요한 범위의 data만 추출, filter, 처리한다. Spark를 사용하여 MongoDB를 query하기 위해, 다른 database로 data를 추출하고 load하는데 낭비되는 시간이 없다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/spark-analytics-mongodb-sp7odu3m4a.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 12: Spark connector for MongoDB&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/R-6g5539jkfj.png&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The MongoDB R driver provides developers and statisticians a first class experience with idiomatic, native language access to MongoDB, enterprise authentication, and full support for BSON data types. Using the extensive libraries available to R you could query MongoDB time-series data and determine locally weighted regression as seen in Figure 13.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB R driver는 개발자와 통계 전문가에게 MongoDB에 대한 관용적, native language 접근, Enterprise 인증, BSON data 유형에 대한 완벽한 지원을 제공한다. R에서 사용할 수 있는 광범위한 library를 사용하면, 그림 13에서 볼 수 있듯이, MongoDB 시계열 data를 query할 수 있고, locally weighted regression을 결정할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/RStudio-sqcn4w09f8.jpg&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;Figure 13: Scatter Plot showing price over time and smoothing of per second data&lt;/i&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;a href=&quot;https://cran.r-project.org/web/packages/mongolite/index.html&quot; alt=&quot;R driver for MongoDB&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;R driver for MongoDB&lt;/a&gt;&amp;nbsp;is available via the CRAN R Archive. Once installed you can connect to your MongoDB database and return dataframes that can be used in R calculations. The above graph was produced with the following code using R Studio:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://cran.r-project.org/web/packages/mongolite/index.html&quot; alt=&quot;R driver for MongoDB&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;R driver for MongoDB&lt;/a&gt;&amp;nbsp;는 CRAN R Archive를 통해 활용할 수 있다. 일단 설치되면, MongoDB에 연결할 수 있고, R에서 사용될 수 있는 dataframe이 return된다. 위의 graph는 R studio를 사용하여 다음과 같은 code로 작성하였다.&lt;/p&gt;&lt;pre class=&quot;hljs makefile&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;
library(mongolite)

ts=mongo(collection=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;StockDocPerSecond&quot;&lt;/span&gt;, db=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Stock&quot;&lt;/span&gt;, url=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;mongodb://localhost:27020&quot;&lt;/span&gt;)

fbquery=ts$find('{ &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt;:&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;FB&quot;&lt;/span&gt;}', fields='{&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt;:0, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt;:1, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt;:1 }')

plot(fbquery$d,fbquery$p, xlab=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Date&quot;&lt;/span&gt;, ylab=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Price&quot;&lt;/span&gt;, main=&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;Price over Time&quot;&lt;/span&gt;); 

lines(lowess(fbquery$d,fbquery$p), col=2); 
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Summary&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;While not all data is time-series in nature, a growing percentage of it can be classified as time-series – fueled by technologies that allow us to exploit streams of data in real time rather than in batches. In every industry and in every company there exists the need to query, analyze and report on time-series data. Real business value is derived from the analytics and insights gained from the data. MongoDB enables you to collect, analyze and act on every piece of time-series data in your environment. In this three part series we covered some thought provoking questions with respect to your specific application requirements. In the second blog post we looked at a few different time-series schema designs and their impact on MongoDB performance. Finally we concluded the series showing how to query time series data using the MongoDB Aggregation Framework and MongoDB Compass as well as other methods like using the BI Connector and analytical languages like R.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;모든 data가 본질적으로 시계열 data는 아니지만, 점점 더 많은 data가 시계열로 분류될 수 있다. batch가 아닌 실시간으로 data stream을 이용할 수 있는 기술에 의해 가속화된다. 모든 산업과 회사에서 시계열 data를 query, 분석, report할 필요가 있다. 실제 비지니스 가치는 data에서 얻은 분석 및 통찰력에 있다. MongoDB를 사용하면 여러분의 환경에 있는 모든 시게열 data를 수집, 분석, 실행할 수 있다. 이 3개의 게시물에서, 특정 application의 요구사항과 관련하여 몇 가지 생각해봐야 할 질문을 다루었다. 2번째 게시물에서는 몇 가지 시계열 schema design과 그것이 MongoDB 성능에 미치는 영향을 살펴보았다. 마지막으로, MongoDB Aggregation Framework과 MongoDB Compas를 사용하여 시계열 data를 query하는 방법과 BI Connector와 R같은 분석 언어를 사용하는 방법을 보여주면서 마무리지었다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Prototypes are one thing, but handling terabytes of data efficiently is on a different playing field. With MongoDB it is easy to horizontally scale out time-series workloads. Through the use of replica sets, read-only clients can connect to replica-set secondaries to perform their queries leaving the primary to focus on writes. Write heavy workloads can scale horizontally via sharding. While an in depth analysis of MongoDB architecture is out of scope for these blog posts you can find lots of useful information in the&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/mongodb-architecture&quot; alt=&quot;MongoDB Architecture whitepaper&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Architecture whitepaper&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;prototype도 중요하지만, 수 TB의 data를 처리하는 것은 다르다. MongoDB를 사용하면 시계열의 작업량을 쉽게 수평확장할 수 있다. replica set을 사용함으로서, primary는 write에 집중할 수 있도록 하고, 읽기 전용 client는 replica-set secondary에 연결하여 query를 수행할 수 있다. write가 많으며느 sharding을 통해 수평확장할 수 있다. MongoDB architecture에 대한 심층적인 분석은 이 게시물의 범위를 벗어나지만,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/mongodb-architecture&quot; alt=&quot;MongoDB Architecture whitepaper&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Architecture whitepaper&lt;/a&gt;에서 유용한 정보를 많이 볼 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The Internet of Things (IoT) use case generates a plethora of time-series data. Larger IoT solutions involve supporting a variety of hardware and software devices for data ingestion, supporting real-time and historical analysis, security, high availability and managing time series data at scale to name a few. MongoDB is powering mission critical IoT applications worldwide. For more information on IoT at MongoDB check out the&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/use-cases/internet-of-things&quot; alt=&quot;Internet of Things website&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Internet of Things website&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;IoT 사용 사례는 수많은 시계열 data를 생성한다. 대형 IoT 솔루션은 data 수집을 위한 다양한 HW, SW device 지원, 실시간/과거 분석 지원, 보안, 고가용성, 규모에 맞는 시계열 data의 관리 등을 포함한다. MongoDB는 전세계적으로 IoT application을 주도하고 있다, MongoDB의 IoT에 대한 더 많은 정보는&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/use-cases/internet-of-things&quot; alt=&quot;Internet of Things website&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Internet of Things website&lt;/a&gt;을 확인해 보자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-3--querying-analyzing-and-presenting-timeseries-data&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 3 – Querying, Analyzing, and Presenting Time-Series Data&lt;/a&gt;&lt;/p&gt;</description>
      <category>MongoDB</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/656</guid>
      <comments>https://drscg.tistory.com/656#entry656comment</comments>
      <pubDate>Mon, 21 Jan 2019 18:07:28 +0900</pubDate>
    </item>
    <item>
      <title>2018.09.13 - 번역 - Time Series Data and MongoDB: Part 2 &amp;ndash; Schema Design Best Practices</title>
      <link>https://drscg.tistory.com/655</link>
      <description>&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In the previous blog post, “&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-1-introduction&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Time Series Data and MongoDB: Part 1 – An Introduction&lt;/a&gt;,” we introduced the concept of time-series data followed by some discovery questions you can use to help gather requirements for your time-series application. Answers to these questions help guide the schema and MongoDB database configuration needed to support a high-volume production application deployment. In this blog post we will focus on how two different schema designs can impact memory and disk utilization under read, write, update, and delete operations.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이전 게시물인 “&lt;a href=&quot;https://drscg.tistory.com/654&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 1 – An Introduction&lt;/a&gt;”에서, 시계열 data의 개념을 소개하고, 시계열 application의 요규사항을 수집하는데 도움이 되는 몇 가지 질물을 소개했다. 이들 질문에 대한 답변은 대용량 application의 배포를 지원하는데 필요한 schema와 MongoDB database 구성에 도움이 된다. 이 게시물에서는, read, write, update, delete 연산에서 2가지 다른 schema design이 memory와 disk 사용률에 얼마나 영향을 미치는지에 대해 중점적으로 다룰것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In the end of the analysis you may find that the best schema design for your application may be leveraging a combination of schema designs. By following the recommendations we lay out below, you will have a good starting point to develop the optimal schema design for your app, and appropriately size your environment.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;분석이 끝나면 application에 가장 적합한 scheman design은 schema design의 조합을 활용하는 것이라는 것을 발견할 것이다. 아래에 제시한 권장사항을 따르면, 여러분의 app에 최적인 schema design을 개발하고, 여러분의 환경에 적절히 조절할 수 있는 좋은 출발점이 될 것이다.&lt;/p&gt;
&lt;h1 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 48px; line-height: 1.25; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Designing a time-series schema&lt;/h1&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Let’s start by saying that there is no one canonical schema design that fits all application scenarios. There will always be trade-offs to consider regardless of the schema you develop. Ideally you want the best balance of memory and disk utilization to yield the best read and write performance that satisfy your application requirements, and that enables you to support both data ingest and analysis of time-series data streams.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;먼저, 모든 application 시나리오에 적합한 표준 schema design은 없다는 점부터 시작하자. 개발하려는 schema에 관계없이 항상 고려해야 할 trade-offs가 있다. 이상적으로는 application 요구사항을 만족시키고, data 수집과 시계열 data stream의 분석을 동시에 지원할 수 있는, 최상의 read, write 성능을 충족시키기 위해,&amp;nbsp; 최적의 memory 및 disk 사용량의 균형을 원한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In this blog post we will look at various schema design configurations. First, storing one document per data sample, and then bucketing the data using one document per time-series time range and one document per fixed size. Storing more than one data sample per document is known as bucketing. This will be implemented at the application level and requires nothing to be configured specifically in MongoDB. With MongoDB’s flexible data model you can optimally bucket your data to yield the best performance and granularity for your application’s requirements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물에서, 다양한 schema design 구성을 살펴볼 것이다. 먼저, data 샘플 당 하나의 document를 저장한 다음, 시계열 시간 범위당 하나의 document와 고정된 크기당 하나의 document를 사용하여, data를 bucketing한다.&amp;nbsp;document당 하나 이상의 data 샘플을 저장하는 것을 bucketing이라 한다. 이것은 application 수준에서 구현되며, MongoDB에서 특별히 구성해야 할 필요는 없다. MongoDB의 유연한 data model을 사용하면 data를 최적의 상태로 bucket에 배치하여, application의 요구사항에 맞는 최상의 성능과 세분성을 얻을 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;This flexibility also allows your data model to adapt to new requirements over time – such as capturing data from new hardware sensors that were not part of the original application design. These new sensors provide different metadata and properties than the sensors you used in the original design. With all this flexibility you may think that MongoDB databases are the wild west, where anything goes and you can quickly end up with a database full of disorganized data. MongoDB provides as much control as you need via&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/schema-validation/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;schema validation&lt;/a&gt;&amp;nbsp;that allows you full control to enforce things like the presence of mandatory fields and range of acceptable values, to name a few.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;또한, 이러한 유연성으로 인해, data model을 시간에 따른 새로운 요구 사항(원래의 application design의 일부가 아닌 새로운 HW sensor에서 data를 얻는 것 같은)에 맞게 조정할 수 있다. 이러한 새로운 sensor는 원래의 design에서 사용된 sensor와 다른 metadata와 속성을 제공한다. 이러한 유연성 때문에 MongoDB database는 어떤 일이든 가능하며, 체계적이지 않은 data로 가드찬 database를 쉽게 구축할 수 있다고 생각할 수 있다. MongoDB는 &lt;a href=&quot;https://docs.mongodb.com/manual/core/schema-validation/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;schema validation&lt;/a&gt;을 통해 필요한 만큼 제어할 수 있으며, 이를 통해 필수 field가 있는지, 허용 값의 범위 같은 것들을 강제할 수 있도록 완전한 제어가 가능하다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;To help illustrate how schema design and bucketing affects performance, consider the scenario where we want to store and analyze historical stock price data. Our sample stock price generator application creates sample data every second for a given number of stocks that it tracks. One second is the smallest time interval of data collected for each stock ticker in this example. If you would like to generate sample data in your own environment, the&amp;nbsp;&lt;a href=&quot;https://github.com/RWaltersMA/StockPriceGenerator&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;StockGen&lt;/a&gt;&amp;nbsp;tool is available on GitHub. It is important to note that although the sample data in this document uses stock ticks as an example, you can apply these same design concepts to any time-series scenario like temperature and humidity readings from IoT sensors.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;schema design과 bucketing이 성능에 미치는 영향을 설명하기 위해, 과거의 주식 가격 data를 저장하고 분석하는 시나리오를 생각해 보자. 샘플 주식 가격 생성 application은 그것이 추적하는 정해진 수의 주식에 대해 매초마다 샘플 data를 생성한다. 1초는 이 예제에서 각 주식 시세에 대해 수집된 data의 최소 시간 간격이다. 여러분이 셈플 data를 생성하려면, GitHub에서&amp;nbsp;&lt;a href=&quot;https://github.com/RWaltersMA/StockPriceGenerator&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;StockGen&lt;/a&gt;&amp;nbsp;tool을 사용할 수 있다. 이 document의 샘플 data는 주식 ticks를 예제로 사용하지만, IoT sensor의 온도와 습도 판독값 같은 어떤 시계열 시나리오에도 이런 동일한 design 개념을 적용할 수 있다는 점을 기억하자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The StockGen tool used to generate sample data will generate the same data and store it in two different collections:&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial;&quot;&gt;StockDocPerSecond&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial;&quot;&gt;StockDocPerMinute&lt;/span&gt;&amp;nbsp;that each contain the following schemas:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;sample data를 생성하는데 사용되는 StocGen tool은 2개의 다른 collection에 동일한 data를 생성해 저장한다.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial;&quot;&gt;StockDocPerSecond&lt;/span&gt;와&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial;&quot;&gt;StockDocPerMinute 각각은 다음과 같은 schema를 가진다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Scenario 1: One document per data point&lt;/h2&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;{
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt; : ObjectId(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;5b4690e047f49a04be523cbd&quot;&lt;/span&gt;),
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt; : 56.56,
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;MDB&quot;&lt;/span&gt;,
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-30T00:00:01Z&quot;&lt;/span&gt;)
},
{
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt; : ObjectId(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;5b4690e047f49a04be523cbe&quot;&lt;/span&gt;),
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt; : 56.58,
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;MDB&quot;&lt;/span&gt;,
  &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-30T00:00:02Z&quot;&lt;/span&gt;)
}
,...
&lt;/code&gt;&lt;/pre&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 1: Sample documents representing one document per second granularity&lt;/small&gt;&lt;/center&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Scenario 2: Time-based bucketing of one document per minute&lt;/h2&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;{
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt; : ObjectId(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;5b5279d1e303d394db6ea0f8&quot;&lt;/span&gt;), 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt; : {
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;0&quot;&lt;/span&gt; : 56.56,
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;1&quot;&lt;/span&gt; : 56.56,
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2&quot;&lt;/span&gt; : 56.58,
…
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;59&quot;&lt;/span&gt; : 57.02
},
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;MDB&quot;&lt;/span&gt;,
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-30T00:00:00Z&quot;&lt;/span&gt;)
},
{
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;_id&quot;&lt;/span&gt; : ObjectId(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;5b5279d1e303d394db6ea134&quot;&lt;/span&gt;), 
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;p&quot;&lt;/span&gt; : {
 &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;0&quot;&lt;/span&gt; : 69.47,
 &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;1&quot;&lt;/span&gt; : 69.47,
 &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2&quot;&lt;/span&gt; : 68.46,
...
 &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;59&quot;&lt;/span&gt; : 69.45
},
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;symbol&quot;&lt;/span&gt; : &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;TSLA&quot;&lt;/span&gt;,
&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-06-30T00:01:00Z&quot;&lt;/span&gt;)
},...
&lt;/code&gt;&lt;/pre&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 2: Sample documents representing one minute granularity&lt;/small&gt;&lt;/center&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Note that the field “p” contains a subdocument with the values for each second of the minute.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;“p”&amp;nbsp; field는 해당 분의 각 초에 대한 값을 가지는 하위 document를 포함한다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Schema design comparisons&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Let’s compare and contrast the database metrics of storage size and memory impact based off of 4 weeks of data generated by the StockGen tool. Measuring these metrics is useful when assessing database performance.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;StocGen tool로 생성된 4주 분량의 data를 기반으로 저장소 크기와 memory 영향에 대한 database metric을 비교하고 대조해 보자. 이들 metric을 측정하는 것은 database의 성능을 평가할 때 유용하다.&lt;/p&gt;
&lt;h3 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 24px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Effects on Data Storage&lt;/h3&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In our application the smallest level of time granularity is a second. Storing one document per second as described in Scenario 1 is the most comfortable model concept for those coming from a relational database background. That is because we are using one document per data point, which is similar to a row per data point in a tabular schema. This design will produce the largest number of documents and collection size per unit of time as seen in Figures 3 and 4.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 application에서 가장 작은 수준의 시간 세분화는 2번째이다. 시나리오 1에 설명한 대로, 초당 하나의 document를 저장하는 것이 RDB 관점에서 보면 가장 익숙한 모델이다. 표(table) 형식 schema에서 data별로 하나의 row와 유사하게, data별로 하나의 document를 사용하기 때문이다.&lt;/p&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image1-esn30j6wcb.png&quot; alt=&quot;Document count per day comparing per second vs per minute schema design&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;&lt;/center&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 3: Document count over time, comparing per second vs per minute schema design&lt;/small&gt;&lt;/center&gt;&lt;p&gt;&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image3-sw744kq908.png&quot; alt=&quot;Comparison between data size and storage size for each scenario&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;&lt;/center&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 4: Comparison between data size and storage size for each scenario&lt;/small&gt;&lt;/center&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Figure 4 shows two sizes per collection. The first value in the series is the size of the collection that is stored on disk, while the second value is the size of the data in the database. These numbers are different because MongoDB’s WiredTiger storage engine supports&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/wiredtiger/#compression&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;compression&lt;/a&gt;&amp;nbsp;of data at rest. Logically the PerSecond collection is 605MB, but on disk it is consuming around 190 MB of storage space.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;그림4는 collection별로 2개의 크기를 보여준다. 첫번째 값은 disk에 저장된 collection의 크기이고, 두번째 값은 database의 data 크기이다. MongoDb의 WiredTiger storage engine은 미사용 data의&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/wiredtiger/#compression&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;compression&lt;/a&gt;을 지원하기 때문에, 이들 숫자는 다르다. 이론적으로 PerSecond collect은 650MB 이지만, disk에서는 약 190MB 의 저장소 공간을 소비한다.&lt;/p&gt;
&lt;h3 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 24px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Effects on memory utilization&lt;/h3&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;A large number of documents will not only increase data storage consumption but increase index size as well. An index was created on each collection and covered the symbol and date fields. Unlike some key-value databases that position themselves as time-series databases, MongoDB provides&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/indexes/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;secondary indexes&lt;/a&gt;&amp;nbsp;giving you flexible access to your data and allowing you to optimize query performance of your application.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;많은 수의 document는 data 저장소뿐만 아니라 index 크기도 증가시킨다. index는 각 collection 별로 생성되고, 기호 및 date field를 포함한다. 스스로를 시계열 database라 하는 일부 key-value database와 달리, MongoDB는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/indexes/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;secondary indexes&lt;/a&gt;&amp;nbsp;를 제공하여, data의 유연한 access와 application에서의 query 성능 최적화가 가능하다.&lt;/p&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image2-t7gc19lv4c.png&quot; alt=&quot;Index Size (MB) comparison between PerSecond and PerMinute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;&lt;/center&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 5: Index Size (MB) comparison between PerSecond and PerMinute&lt;/small&gt;&lt;/center&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The size of the index defined in each of the two collections IS seen in Figure 5. Optimal performance of MongoDB happens when indexes and most recently used documents fit into the memory allocated by the WiredTiger cache (we call this the “working set”). In our example we generated data for just 5 stocks over the course of 4 weeks. Given this small test case our data already generated an index that is 103MB in size for the PerSecond scenario. Keep in mind that there are some optimizations such as&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/glossary/#term-prefix-compression&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;index prefix compression&lt;/a&gt;&amp;nbsp;that help reduce the memory footprint of an index. However, even with these kind of optimizations proper schema design is important to prevent runaway index sizes. Given the trajectory of growth, any changes to the application requirements, like tracking more than just 5 stocks or more than 4 weeks of prices in our sample scenario, will put much more pressure on memory and eventually require indexes to page out to disk. When this happens your performance will be degraded. To mitigate this situation, consider scaling horizontally.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;2 collection 각각에 정의된 index의 크기는 그림5에서 볼 수 있다. MongoDB의 최적 성능은 index와 가장 최근 사용된 document가 WiredTiger cache(우리는 이를 &quot;working set&quot;이라 한다)에 할당된 memory에 적합할 경우에 발생한다. 이 예에서 4주동안 5개의 주식에 대한 data를 생성했다. 이 작은 테스트에서, 이 data는&amp;nbsp; PerSecond 시나리오에 대해 크기가 103MB인 index를 생성했다. index의 memory 공간을 줄이는데 도움이 되는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/glossary/#term-prefix-compression&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;index prefix compression&lt;/a&gt;&amp;nbsp;같은 최적화가 있음을 기억하자. 그러나, 이런 종류의 최적화에도 불구하고, index 크기의 급증을 방지하기 위하여 적절한 schema design이 중요하다. 증가 추이를 고려하여, 샘플 시나리오에서 5개 이상의 주식 또는 4주 이상의 가격을 추적하는 것 같은, application 요구사항의 변경은 memory에 더 많은 부담을 줄 것이고, 결국 index가 disk에 paging될 것이다. 이렇게 되면 성능히 저하될 것이다. 이 상황을 피하려면, 수평확장을 고려하자.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Scale horizontally&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;As your data grows in size you may end up scaling horizontally when you reach the limits of the physical limits of the server hosting the primary mongod in your MongoDB replica set.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;data 크기가 증가하면, MongoDB replica set에서 primary momgod을 가지는 server의 물리적 한계에 도달하면, 결국 수평확장 해야 한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;By horizontally scaling via&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Sharding&lt;/a&gt;, performance can be improved since the indexes and data will be spread over multiple MongoDB nodes. Queries are no longer directed at a specific primary node. Rather they are processed by an intermediate service called a query router (mongos), which sends the query to the specific nodes that contain the data that satisfy the query. Note that this is completely transparent to the application – MongoDB handles all of the routing for you&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/sharding/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Sharding&lt;/a&gt;을 통해 수평확장을 하면, index와 data가 MongoDB node에 분산되므로, 성능은 향상된다. query는 더 이상 특정 primary node로 전달되지 않는다. 오히려 그것들은 query router(mongos)라는 중간 서비스에 의해 처리되는데, 이것은 query를 충족시키는 data를 가진 특정 node로 query를 전송한다.이것은 application과 완전히 분리되어 있다는 점을 기억하자. MongoDB가 모든 routing을 처리한다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Scenario 3: Size-based bucketing&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The key takeaway when comparing the previous scenarios is that bucketing data has significant advantages. Time-based bucketing as described in scenario 2 buckets an entire minute's worth of data into a single document. In time-based applications such as IoT, sensor data may be generated at irregular intervals and some sensors may provide more data than others. In these scenarios, time-based bucketing may not be the optimal approach to schema design. An alternative strategy is size-based bucketing. With size-based bucketing we design our schema around one document per a certain number of emitted sensor events, or for the entire day, whichever comes first.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이전 시나리오와 비교할 때 중요한 점은 bucketing data는 상당한 이점을 가진다는 것이다. 시나리오 2에서 설명한 시계열 bucketing은 전체 분(minute)의 data를 단일 document로 bucket화 한다. IoT 같은 시계열 application에서, sensor data가 불규칙한 시간으로 생성될 수 있고, 일부 sensor는 다른 것보다 더 많은 data를 제공할 수 있다. 이 시나리오에서, 시계열 bucketing은 schema design에 대한 최적의 방법이 아닐 수 있다. 대안은 크기 기반 bucketing이다. 크기 기반 bucketing을 사용하여, 출력된 sensor event의 특정 횟수 별로 또는 또는 전체 날짜에 대해 먼저 발생하는 것을 하나의 document로 schema를 design한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;To see size-based bucketing in action, consider the scenario where you are storing sensor data and limiting the bucket size to 200 events per document, or a single day (whichever comes first). Note: The 200 limit is an arbitrary number and can be changed as needed, without application changes or schema migrations.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;크기 기반 bucketing을 보려면, sensor data를 저장하고, bucket 크기를&amp;nbsp;document당 200 event 또는 하루(먼저 발생하는)로&amp;nbsp; 제한하는 시나리오를 고려하자. 200이라는 제한은 임의의 숫자이며, application의 변경이나 schema migration 없이, 필요에 따라 변경될 수 있다.&lt;/p&gt;&lt;pre class=&quot;hljs css&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;{
  &lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;_id&lt;/span&gt;: &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;ObjectId&lt;/span&gt;(),
 deviceid: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1234&lt;/span&gt;,
 sensorid: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;3&lt;/span&gt;,
 nsamples: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;5&lt;/span&gt;,
  day: &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;ISODate&lt;/span&gt;(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-08-29&quot;&lt;/span&gt;),
 first:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530412&lt;/span&gt;,
 last: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530432&lt;/span&gt;,
 samples : [
   { val: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;50&lt;/span&gt;, time: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530412&lt;/span&gt;},
   { &lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;val&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;55&lt;/span&gt;, time : &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530415&lt;/span&gt;},
   { &lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;val&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;56&lt;/span&gt;, time: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530420&lt;/span&gt;},
   { &lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;val&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;55&lt;/span&gt;, time : &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530430&lt;/span&gt;},
   { &lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;val&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;56&lt;/span&gt;, time: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530432&lt;/span&gt;}
   ]
}
&lt;/code&gt;&lt;/pre&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 6: Size-based bucketing for sparse data&lt;/small&gt;&lt;/center&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;An example size-based bucket is shown in figure 6. In this design, trying to limit inserts per document to an arbitrary number or a specific time period may seem difficult; however, it is easy to do using an upsert, as shown in the following code example:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;크기 기반 bucket의 예는 그림 6에서 볼 수 있다. 이 design에서, document 별로 임의의 숫자나 특정 시간 간격으로 insert를 제한하는 것이 어려워보일 수 있다. 그러나, 다음 code 예제와 같이 upsert를 사용하면 쉽다.&lt;/p&gt;&lt;pre class=&quot;hljs perl&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;sample = {val: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;59&lt;/span&gt;, &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(180, 142, 173);&quot;&gt;time&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1535530450&lt;/span&gt;}
day = ISODate(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-08-29&quot;&lt;/span&gt;)
db.iot.updateOne({deviceid: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1234&lt;/span&gt;, sensorid: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;3&lt;/span&gt;, nsamples: {$lt: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;200&lt;/span&gt;}, day: day},
                 {$push: {samples: sample},
                  $min: {first: sample.time},
                  $max: {&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(180, 142, 173);&quot;&gt;last&lt;/span&gt;: sample.time},
                  $inc: {nsamples: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(208, 135, 112);&quot;&gt;1&lt;/span&gt;}, {upsert: true} )
&lt;/code&gt;&lt;/pre&gt;&lt;center style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;&lt;small style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-size: 14px;&quot;&gt;Figure 7: Sample code to add to the size-based bucket&lt;/small&gt;&lt;/center&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;As new sensor data comes in it is simply appended to the document until the number of samples hit 200, then a new document is created because of our upsert:true clause.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;새로운 sensor data가 들어오면, sample 수가 200개가 될 때까지 추가된다. 그 다음에 upsert:true 절 때문에 새로운 document가 추가된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;The optimal index in this scenario would be on {deviceid:1,sensorid:1,day:1,nsamples:1}. When we are updating data, the day is an exact match, and this is super efficient. When querying we can specify a date, or a date range on a single field which is also efficient as well as filtering by first and last using UNIX timestamps. Note that we are using integer values for times. These are really times stored as a UNIX timestamp and only take 32 bits of storage versus an ISODate which takes 64 bits. While not a significant query performance difference over ISODate, storing as UNIX timestamp may be significant if you plan on ending up with terabytes of ingested data and you do not need to store a granularity less than a second.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 시나리오에서 최적의 index는 {deviceid:1,sensorid:1,day:1,nsamples:1} 이다. data를 update할 경우, day가 정확한 일치이며, 이것은 매우 효율적이다. query시에, UNIX timestamp를 사용하여 처음과 마지막을 filtering하는 것과 마찬가지로 date나 date 범위를 단일 filed에 지정하는데, 이 또한 효율적이다.시간 값에 대해 integer를 사용한다는 점을 기억하자. 이것은 실제 시간을 UNIX timestamp로 저장하는 것이고, ISODate가 64bit를 사용하는 것에 비해, 32bit 저장소만 사용한다.ISODate에 비해 현저한 query 성능 차이는 아니지만, 수 TB의 data를 수집하고, 1초 미만의 자세한 data를 저장할 필요가 없다면, UNIX timestamp로 저장하는 것은 의미가 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Bucketing data in a fixed size will yield very similar database storage and index improvements as seen when bucketing per time in scenario 2. It is one of the most efficient ways to store sparse IoT data in MongoDB.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;고정된 크기의 data를 bucketing하면, 시나리오 2에서 시간별로 bucketing하는 경우와 매우 유사한 database 저장소와 index 개선을 보인다. MongoDB에서 희박한 IoT data를 저장하는 가장 효율적인 방법 중 하나이다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;What to do with old data&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Should we store all data in perpetuity? Is data older than a certain time useful to your organization? How accessible should older data be? Can it be simply restored from a backup when you need it, or does it need to be online and accessible to users in real time as an active archive for historical analysis? As we covered in part 1 of this blog series, these are some of the questions that should be asked prior to going live.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;모든 data를 영구 저장해야 하는가? 특정 시간보다 오래된 data가 귀사에 유용한가? 이전 data에 어떻게 access 가능해야 하는가? 필요할 경우 backup에서 간단하게 복원되어야 하는가? 아니면, online이어야 하고, 사용자가 실시간 이력 분석을 위해 활성화된 archive에 access할 수 있어야 하는가? 이 게시물의 part 1에서 다루었듯이, 이런 것들이 실제 상황으로 가기 전에 질문해야 할 몇 가지 질문이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;There are multiple approaches to handling old data and depending on your specific requirements some may be more applicable than others. Choose the one that best fits your requirements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이전 data를 처리하는데에는 몇 가지 방법이 있으며, 구체적인 요구 사항에 따라, 몇 가지는 다른 것보다 더 적합할 수도 있다. 요구 사항에 가장 적합한 것을 고르자.&lt;/p&gt;
&lt;h3 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 24px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Pre-aggregation&lt;/h3&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Does your application really need a single data point for every event generated years ago? In most cases the resource cost of keeping this granularity of data around outweighs the benefit of being able to query down to this level at any time. In most cases data can be pre-aggregated and stored for fast querying. In our stock example, we may want to only store the closing price for each day as a value. In most architectures, pre-aggregated values are stored in a separate collection since typically queries for historical data are different than real-time queries. Usually with historical data, queries are looking for trends over time versus individual real-time events. By storing this data in different collections you can increase performance by creating more efficient indexes as opposed to creating more indexes on top of real-time data.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;몇 년전에 생성된 모든 event에 대한 단일 data point가 application에 정말 필요한가? 대부분의 경우, 이러한 세분화된 data를 유지하는데 드는 resource 비용은 항상 이런 수준으로 query할 수 있을 때의 이점보다 크다. 대부분의 경우, 빠른 query를 위해 data를 사전 집계하여 저장할 수 있다. 주식 예제에서, 매일 마감 가격만을 값으로 저장하려 할 수도 있다. 일반적으로 과거 data에 대한 query는 실시간 query와 다르므로, 사전 집계 값들은 별도의 collection에 저장된다. 일반적으로, 과거 data의 경우, query는 실시간 event에 비해 시간별 추세를 찾는다. 다른 collection에 이 data를 저장하면, 실시간 data에 더 많은 index를 생성하는 것이 아니라 보다 효율적인 index를 생성함으로써, 성능을 향상시킬 수 있다.&lt;/p&gt;
&lt;h3 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 24px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Offline archival strategies&lt;/h3&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;When data is archived, what is the SLA associated with retrieval of the data? Is restoring a backup of the data acceptable or does the data need to be online and ready to be queried at any given time? Answers to these questions will help drive your archive design. If you do not need real-time access to archival data you may want to consider backing up the data and removing it from the live database. Production databases can be backed up using&amp;nbsp;&lt;a href=&quot;https://docs.opsmanager.mongodb.com/current/core/backup-overview/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Ops Manager&lt;/a&gt;&amp;nbsp;or if using the&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/cloud/atlas&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Atlas&lt;/a&gt;&amp;nbsp;service you can use a fully managed backup solution.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;data를 archive하면, data의 검색과 관련된 SLA는? backup data를 복원이 허용되어야 하는가? 또는 data는 online이어야 하고 특정 시점에 query될 준비가 되어 있어야 하는가? 이 질문에 대한 답변은 archive design을 추친하는데 도움이 될 것이다. archive data에 대한 실시간 access가 필요하지 않다면, data를 backup하고, live database에서 제거하는 것을 고려해 보자. production database는&amp;nbsp;&lt;a href=&quot;https://docs.opsmanager.mongodb.com/current/core/backup-overview/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Ops Manager&lt;/a&gt;를 사용하여 backup할 수 있으며, &lt;a href=&quot;https://www.mongodb.com/cloud/atlas&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Atlas&lt;/a&gt;&amp;nbsp;service를 사용한다면, 완벽하게 관리되는 backup solution을 사용할 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Removing documents using remove statement&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Once data is copied to an archival repository via a database backup or an ETL process, data can be removed from a MongoDB collection via the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.collection.remove/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;remove&lt;/a&gt;&amp;nbsp;statement as follows:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;data가 database backup이나 ETL process를 통해 archive repository에 복사되면, 다음과 같이&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.collection.remove/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;remove&lt;/a&gt;&amp;nbsp;명령어를 통해 MongoDB collection에서 data를 제거할 수 있다.&lt;/p&gt;&lt;pre class=&quot;hljs bash&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt; db.StockDocPerSecond.remove ( { &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt; : { &lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(191, 97, 106);&quot;&gt;$lt&lt;/span&gt;: ISODate( &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;2018-03-01&quot;&lt;/span&gt; ) } } )&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In this example all documents that have a date before March 1st, 2018 defined on the “d” field will be removed from the StockDocPerSecond collection.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 예제에서, &quot;d&quot; field에 2018년 3월 1일 이전의 날짜를 가지고 있는 모든 document는 StockDocPerSecond collection에서 제거된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;You may need to set up an automation script to run every so often to clean out these records. Alternatively, you can avoid creating automation scripts in this scenario by defining a time to live (TTL) index.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이들 record를 정리하기 위해 주기적으로 자주 실행되는 자동화 script를 설정해야 할 수도 있다. 또는, TTL index를 정의하여, 이 시나리오에서 자동화 script를 생성하지 않을 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Removing documents using a TTL Index&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;A&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/index-ttl/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;TTL index&lt;/a&gt;&amp;nbsp;is similar to a regular index except you define a time interval to automatically remove documents from a collection. In the case of our example, we could create a TTL index that automatically deletes data that is older than 1 week.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/core/index-ttl/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;TTL index&lt;/a&gt;&amp;nbsp;는 collection에서 document를 자동으로 제거하는 시간을 정의한다는 점을 제외하면, 일반 index와 유사하다. 예제에서, TTL index를 생성하여, 1주일 이상 경과된 data를 자동으로 삭제한다.&lt;/p&gt;&lt;pre class=&quot;hljs apache&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; overflow: auto; margin-top: 0px; margin-bottom: 10px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(192, 197, 206); background: rgb(43, 48, 59); border-radius: 4px; padding: 0.5em;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px; font-size: inherit; background-color: transparent; border-radius: 0px;&quot;&gt;&lt;span class=&quot;hljs-attribute&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(235, 203, 139);&quot;&gt;db&lt;/span&gt;.StockDocPerSecond.createIndex( { &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(163, 190, 140);&quot;&gt;&quot;d&quot;&lt;/span&gt;: 1 }, { expireAfterSeconds: 604800 } )&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Although TTL indexes are convenient, keep in mind that the check happens every minute or so and the interval cannot be configured. If you need more control so that deletions won’t happen during specific times of the day you may want to schedule a batch job that performs the deletion in lieu of using a TTL index.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;TTL index는 편리하지만, 매 분(minute)마다 점검해야 하고, 간격을 설정할 수 없다는 점을 기억하자. 하루 중 특정 시간대에 삭제가 발생하지 않도록 더 많은 제어가 필요하다면, TTL index를 사용하는 대신 삭제를 수행하는 batch job을&amp;nbsp;예약하자.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Removing documents by dropping the collection&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;It is important to note that using the remove command or TTL indexes will cause high disk I/O. On a database that may be under high load already this may not be desirable. The most efficient and fastest way to remove records from the live database is to&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.collection.drop/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;drop the collection&lt;/a&gt;. If you can design your application such that each collection represents a block of time, when you need to archive or remove data all you need to do is drop the collection. This may require some smarts within your application code to know which collections should be queried, but the benefit may outweigh this change. When you issue a remove, MongoDB also has to remove data from all affected indexes as well and this could take a while depending on the size of data and indexes.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;remove command나 TTL index를 사용하면 많은 disk I/O가 발생한다는 점에 유의하자. 이미 많은 부하가 있을 수도 있는 database에 이것은 바람직하지 않다. live database에서 record를 제거하는 가장 효율적이고 빠른 방법은&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/db.collection.drop/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;collection을 삭제&lt;/a&gt;하는 것이다. 각 collection이 시간을 나타내도록 application을 design할 수 있다면, data를 archive하거나 제거할 경우에 해야할 것은 collection을 삭제하는 것 뿐이다. 이렇게 하려면, application code에서 어떤 collection을 query해야 할지를 알기 위해 몇 가지가 요구되지만, 이득이 이 변경 사항을 능가할 수 있다. 제거를 실행하면, MongoDB는 영향을 받는 모든 index에서 data를 제거해야 하고 data와 index의 크기에 따라 시간이 걸릴 수 있다.&lt;/p&gt;
&lt;h3 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 24px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Online archival strategies&lt;/h3&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;If archival data still needs to be accessed in real time, consider how frequently these queries occur and if storing only pre-aggregated results can be sufficient.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;archive data에 실시간으로 access해야 한다면, 이들 query가 얼마나 자주 발생하고, 사전 집계된 결과만 저장해도 충분한지 생각해 보자.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Sharding archival data&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;One strategy for archiving data and keeping the data accessible real-time is by using&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/zone-sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;zoned sharding&lt;/a&gt;&amp;nbsp;to partition the data. Sharding not only helps with horizontally scaling the data out across multiple nodes, but you can tag shard ranges so partitions of data are pinned to specific shards. A cost saving measure could be to have the archival data live on shards running lower cost disks and periodically adjusting the time ranges defined in the shards themselves. These ranges would cause the balancer to automatically move the data between these storage layers, providing you with tiered, multi-temperature storage. Review our&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/tutorial/sharding-tiered-hardware-for-varying-slas/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;tutorial for creating tiered storage patterns&lt;/a&gt;&amp;nbsp;with zoned sharding for more information.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;data를 archive하고 실시간으로 access 가능하도록 유지하기 위한 전략 중 하나는 data를 분할하기 위해&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/zone-sharding/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;zoned sharding&lt;/a&gt;&amp;nbsp;을 사용하는 것이다. sharding은 여러 node에 data를 수평 확장하는데 도움이 될 뿐 아니라, shard range에 tag를 지정하여, data partition을 특정 shard에 고정할 수 있다. 비용 절감 방법은 저비용 disk에서 동작하는 shard에 archive data를 저장하고, shard 자체에 정의된 시간 range를 주기적으로 조정하는 것이다. 이런 range를 사용하면, balancer가 자동으로 이러한 storage 계층간에 data를 이동시켜 계층화된 multi-temperature storage를 제공한다. 구체적인 정보는 zoned sharding을 사용하여&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/tutorial/sharding-tiered-hardware-for-varying-slas/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;tiered storage patterns 생성에 대한 tutorial&lt;/a&gt;을 참고하자&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Accessing archived data via queryable backups&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;If your archive data is not accessed that frequently and the query performance does not need to meet any strict latency SLAs, consider backing the data up and using the Queryable Backups feature of MongoDB Atlas or MongoDB OpsManager.&amp;nbsp;&lt;a href=&quot;https://docs.opsmanager.mongodb.com/current/tutorial/query-backup/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Queryable Backups&lt;/a&gt;&amp;nbsp;allow you to connect to your backup and issue read-only commands to the backup itself, without having to first restore the backup.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;archive data에 자주 access하지 않고query 성능이 엄격한 대기시간 SLA를 충족시키지 않아도 된다면, MongoDB Atlas 나&amp;nbsp;MongoDB OpsManager의 Queryable Backups 기능을 사용하여 data를 backup하는 것을 고려하자.&amp;nbsp;&lt;a href=&quot;https://docs.opsmanager.mongodb.com/current/tutorial/query-backup/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Queryable Backups&lt;/a&gt;을 사용하면, backup을 먼저 복원하지 않은채로, backup에 연결하고 backup에 read-only command를 실행할 수 있다.&lt;/p&gt;
&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Querying data from the data lake&lt;/h4&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB is an inexpensive solution not only for long term archival but for your data lake as well. Companies who have made investments in technologies like Apache Spark can leverage the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/spark-connector/current/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Spark Connector&lt;/a&gt;. This connector materializes MongoDB data as DataFrames and Datasets for use with Spark and machine learning, graph, streaming, and SQL APIs.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB는 장기 archive 뿐만 아니라 여러분의 data에 대해서도 저렴한 솔루션이다. Apache Spark와 같은 기술에 투자한 기업들은&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/spark-connector/current/&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB Spark Connector&lt;/a&gt;&amp;nbsp;를 활용할 수 있다. 이 connector는 MongoDB data를 Spark, Machine Learning, graph, streaming, SQL API와 함께 사용할 수 있도록 DataFrames, Datasets&amp;nbsp;으로 구체화한다.&lt;/p&gt;
&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Key Takeaways&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Once an application is live in production and is multiple terabytes in size, any major change can be very expensive from a resource standpoint. Consider the scenario where you have 6 TB of IoT sensor data and are accumulating new data at a rate of 50,000 inserts per second. Performance of reads is starting to become an issue and you realize that you have not properly scaled out the database. Unless you are willing to take application downtime, a change of schema in this configuration – e.g., moving from raw data storage to bucketed storage – may require building out shims, temporary staging areas and all sorts of transient solutions to move the application to the new schema. The moral of the story is to plan for growth and properly design the best time-series schema that fits your application’s SLAs and requirements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;application이 실제 환경에 구축되고, 수 TB의 크기가 되면, resource 관점에서 볼때, 큰 변화가 발생할 수 있다. 6TB 의 sensor data가 있고, 초당 5만개의 insert 속도로 새로운 data가 축적되는 시나리오를 생각해 보자. read 성능에 문제가 발생하고, database를 제대로 확장하지 못한 것을 알게 된다. appplication의 downtime을 감내하지 않으려면, 이 설정에서 schema를 변경(원래의 storage에서 bucket storage로 옮기는 것 같은)하려면, application을 새로운 scheman로 옮기기 위해&amp;nbsp; shims, 임시 staging area, 모든 종류의 임시 솔루션등이 필요하다. 이 이야기의 핵심은 증가에 대한 계획을 마련하고 application의 SLA와 요구사항에 적합한 최적의 시계열 schema를 적절히 design하는 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;This article analyzed two different schema designs for storing time-series data from stock prices. Is the schema that won in the end for this stock price database the one that will be the best in your scenario? Maybe. Due to the nature of time-series data and the typical rapid ingestion of data the answer may in fact be leveraging a combination of collections that target a read or write heavy use case. The good news is that with MongoDB’s flexible schema, it is easy to make changes. In fact you can run two different versions of the app writing two different schemas to the same collection. However, don’t wait until your query performance starts suffering to figure out an optimal design as migrating TBs of existing documents into a new schema can take time and resources, and delay future releases of your application. You should undertake real world testing before commiting on a final design. Quoting a famous proverb, “Measure twice and cut once.”&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물에서는 주식 가격이라는 시계열 data를 저장하는 2가지 다른 시계열 schema를 분석하였다. 이 주식 가격 database에서 얻은 schema가 가장 좋을까? 그럴지도 모른다. 시계열 data의 특성과 일반적인 data의 빠른 수집으로 인해, 실제로 사용량이 많은 read/write를 대상으로 하는 collection의 조합을 활용할 수 있다. 좋은 점은 MingoDB의 유연한 schema를 활용하면 쉽게 변경할 수 있다는 점이다. 실제로&amp;nbsp;2개의 다른 schema를 동일한 collection에 작성하는 2개의 다른 version의 app을 실행할 수 있다. 그러나, 수 TB의 기존 document를 새로운 schema로 migration하면 시간과 resource가 필요할 수 있고, application의 향후 release가 지연될 수 있으므로, query 성능이 저하되기 시작할 때까지, 최적의 desigin을 찾는 것을 기다리지는 말자. 최종 design을 적용하기 전에 실전 테스트를 수행해야 한다. &quot;두 번 측정하고 한번 자르자&quot;라는 유명한 격언이 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;In the next blog post, “&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-3--querying-analyzing-and-presenting-timeseries-data&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Querying, Analyzing, and Presenting Time-Series Data with MongoDB&lt;/a&gt;,” we will look at how to effectively get value from the time-series data stored in MongoDB.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;다음 게시물인 “&lt;a href=&quot;https://drscg.tistory.com/656&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Querying, Analyzing, and Presenting Time-Series Data with MongoDB&lt;/a&gt;” 에서, MongoDB에 저장된 시계열 data에서 효율적으로 값을 얻는 방법을 살펴볼 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial;&quot;&gt;Key Tips&lt;/span&gt;:&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;&lt;/p&gt;
&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;
&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;The MMAPV1 storage engine is deprecated, so use the default WiredTiger storage engine. Note that if you read older schema design best practices from a few years ago, they were often built on the older MMAPV1 technology.&lt;br /&gt;MMAPV1 storage engine은 deprecate되었으므로. 기본인 WiredTiger storage engine을 사용하자. 몇 년전의 이전 schema design 모범 사례를 읽어보면, 기존의 MMAPV1 기술을 기반으로 구축된 경우가 많다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Understand what the data access requirements are from your time-series application.&lt;br /&gt;시계열 application의 data access 요구 사항을 이해하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Schema design impacts resources. “Measure twice and cut once” with respect to schema design and indexes.&lt;br /&gt;schema design은&amp;nbsp;resource에 영향을 미친다.&amp;nbsp;schema design과 index에 대해서는&amp;nbsp;“두 번 측정하고 한 번 자르자&quot;를 기억하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Test schema patterns with real data and a real application if possible.&lt;br /&gt;가능하다면, 실제 data와 application으로 schema pattern을 테스트 하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Bucketing data reduces index size and thus massively reduces hardware requirements.&lt;br /&gt;data bucketing은 index 크기를 줄여, HW 요구사항을 대폭 감소시킨다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Time-series applications traditionally capture very large amounts of data, so only create indexes where they will be useful to the app’s query patterns.&lt;br /&gt;시계열 application은 전통적으로 매우 많은 data를 수집하므로, app의 query pattern에 유용한 index만 생성하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Consider more than one collection: one focused on write heavy inserts and recent data queries and another collection with bucketed data focused on historical queries on pre-aggregated data.&lt;br /&gt;하나 이상의 collection을 고려하자. 많은 insert와 최근 data query에 집중하는 하나와, 사전 집계된 data에 대한 과거 query에 집중하는 bucket data를 가진&amp;nbsp; 또 다른 collection&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;When the size of your indexes exceeds the amount of memory on the server hosting MongoDB, consider horizontally scaling out to spread the index and load over multiple servers.&lt;br /&gt;index의 크기가 MongoDB를 가진 server의 memory보다 클 경우, 수평 확장을 고려하여 index와 부하를 여러 서버에 분산하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Determine at what point data expires, and what action to take, such as archival or deletion.&lt;br /&gt;data 만료 시점, archive, 삭제&amp;nbsp;같은 해야 할 작업을 결정하자.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-2-schema-design-best-practices&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 2 – Schema Design Best Practices&lt;/a&gt;&lt;/p&gt;</description>
      <category>MongoDB</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/655</guid>
      <comments>https://drscg.tistory.com/655#entry655comment</comments>
      <pubDate>Mon, 21 Jan 2019 18:01:43 +0900</pubDate>
    </item>
    <item>
      <title>2018.09.06 - 번역 - Time Series Data and MongoDB: Part 1 &amp;ndash; An Introduction</title>
      <link>https://drscg.tistory.com/654</link>
      <description>&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Time-series data is increasingly at the heart of modern applications - think IoT, stock trading, clickstreams, social media, and more. With the move from batch to real time systems, the efficient capture and analysis of time-series data can enable organizations to better detect and respond to events ahead of their competitors, or to improve operational efficiency to reduce cost and risk. Working with time series data is often different from regular application data, and there are best practices you should observe. This blog series seeks to provide these best practices as you build out your time series application on MongoDB:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;IoT, 주식 거래, clickstreams(사용자가 &amp;nbsp;인터넷에서 보내는 시간 동안 방문한 웹사이트를 기록한 것), SNS등의 현대의 application의 중심에는 시계열(time-series) data가 점차 자리잡고 있다. batch에서 실시간 시스템으로의 이동을 통해, 시계열 data의 효율적인 저장과 분석을 통해, 기업은 그들의 경쟁사보다 앞서서 event를 감지하고 대응하거나 운영 효율성을 개선하여 비용이나 위험을 줄일 수 있다. 시계열 data를 사용하는 것은 흔히 일반 application과 다르고, 모범 사례를 준수해야 한다. 이 게시물 시리즈는 MongoDB에 시계열 application을 구축할 경우, 다음과 같은 모범 사례를 제공하고자 한다.&lt;/p&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;
&lt;ol style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding-left: 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; line-height: 1.5em; margin: 15px 0px; list-style-type: decimal;&quot;&gt;Introduce the concept of time-series data, and describe some of the challenges associated with this type of data&lt;br /&gt;시계열 data의 개념을 소개하고, 이런 유형의 data와 관련된 당면 과제를 설명한다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; line-height: 1.5em; margin: 15px 0px; list-style-type: decimal;&quot;&gt;How to query, analyze and present time-series data&lt;br /&gt;시계열 data를 query, analyze, 표시하는 방법&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; line-height: 1.5em; margin: 15px 0px; list-style-type: decimal;&quot;&gt;Provide discovery questions that will help you gather technical requirements needed for successfully delivering a time-series application.&lt;br /&gt;시계열 application을 성공적으로 구축하는데 필요한 기술적인 요구사항을 수집하는데 도움이 되는 의문점을 제공한다.&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;

&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;What is time-series data?&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;While not all data is time-series in nature, a growing percentage of it can be classified as time-series – fueled by technologies that allow us to exploit streams of data in real time rather than in batches. In every industry and in every company there exists the need to query, analyze and report on time-series data. Consider a stock day trader constantly looking at feeds of stock prices over time and running algorithms to analyze trends in identify opportunities. They are looking at data over a time interval, e.g. hourly or daily ranges. A connected car company might obtain telemetry such as engine performance and energy consumption to improve component design, and monitor wear rates so they can schedule vehicle servicing before problems occur. They are also looking at data over a time interval.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;모든 data가 본질적으로 시계열인 것은 아니지만, 점점 많은 data가 시계열로 분류될 수 있다. 즉, batch가 아닌 실시간으로 data stream을 이용할 수 있게 하는 기술에 힘입어 가속화되었다. 모든 회사와 기업에서, 시계열 data에 대한 query, analyze, report가 필요하다. 기회를 찾기 위해, 시간에 따른 주식 가격 자료를 끊임없이 검토하고, 동향을 분석하기 위해 algorithms을 실행하는 주식 거래자를 생각해 보자. 그들은 일정한 시간별(시간별, 일별 등)로 data를 검토한다. 자동차 관련 회사는 부품 설계 개선을 위해 엔진 성능과 에너지 소비같은자료를 얻을 수 있으며, 문제가 발생하기 전에 차량 서비스를 예약할 수 있도록 마모율을 모니터할 수 있다.&lt;/p&gt;

&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Why is time-series data challenging?&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Time-series data can include data that is captured at constant time intervals – like a device measurement per second – or at irregular time intervals like those generated from alerts and auditing event use cases. Time-series data is also often tagged with attributes like the device type and location of the event, and each device may provide a variable amount of additional metadata. Data model flexibility to meet diverse and rapidly changing data ingestion and storage requirements make it difficult for traditional relational (tabular) database systems with a rigid schema to effectively handle time-series data. Also, there is the issue of scalability. With a high frequency of readings generated by multiple sensors or events, time series applications can generate vast streams of data that need to be ingested and analyzed. So platforms that allow data to be scaled out and distributed across many nodes are much more suited to this type of use case than scale-up, monolithic tabular databases.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;시계열 data에는 일정한 시간 간격(초당 장치 측정) 또는 경고나 감시 event 사례에서 생성된 불규칙한 시간 간격으로 얻은 data를 포함할 수 있다. 시계열 data는 흔히 장치의 유형, event의 위치 같은 속성을 가질 수 있고, 각 장치는 가변적인 추가 metadata를 가질 수도 있다. 다양하고 빠르게 변화하는 data 수집과 저장소 요구사항을 충족하는 data model의 유연성 때문에, 엄격한 schema를 사용하는 전통적인(테이블 형태의)&amp;nbsp;&amp;nbsp;database system은 시계열 data를 효율적으로 처리하기가 어렵다. 또한, 확장성 문제도 있다. 복수의 sensor나 event에 의해 생성되는 data를 읽는 경우가 많다면, 시계열 application은 수집과 분석이 필요한 방대한 data stream을 생성할 수 있다. 따라서, data를 여러 node에 걸쳐 확장하고 분산할 수 있는 platform이, scale-up된 단일 테이블 형태의 database보다, 이러한 유형의 사례에 훨씬 더 적합하다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Time series data can come from different sources, with each generating different attributes that need to be stored and analyze. Each stage of the data lifecycle places different demands on a database – from ingestion through to consumption and archival.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;시계열 data는 다양한 source를 가질 수 있고, 각각이 저장, 분석되어야 하는 다양한 속성을 생성할 수 있다. data lifecycle의 각 단계는 수집에서 사용, 보관까지 database에 대해 다양한 요구사항을 가진다.&lt;/p&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;
&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;During data ingestion, the database is primarily performing write intensive operations, comprising mainly inserts with occasional updates. Consumers of data may want to be alerted in real time when an anomaly is detected in the data stream during ingestion, such as a value exceeding a certain threshold.&lt;br /&gt;data 수집 중에는, database는 주로 write 집약적인 작업(가끔 updates를, 주로 inserts로 구성된)을 수행한다.&amp;nbsp;data 사용자는 수집 중에 data stream에 이상 징후(예: 특정 임계값을 초과하는 값)가 발견되면, 실시간으로 경고를 받고자 할 수도 있다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;As more data is ingested consumers may want to query it for specific insights, and to uncover trends. At this stage of the data lifecycle, the workload is read, rather than write heavy, but the database will still need to maintain high write rates as data is concurrently ingested and then queried.&lt;br /&gt;사용자는 data가 더 많이 수집됩에 따라, 어떤 통찰력과 트렌드를 알기 위해 query를 할 수도 있다. data lifecycle의 이 단계에서, 많은 write&amp;nbsp;작업보다는 read&amp;nbsp;작업이 수행되지만, data가 동시에 수집되고 query되므로, database는 여전히&amp;nbsp;높은 write&amp;nbsp;속도를 유지해야 한다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Consumers may want to query historical data and perform predictive analytics leveraging machine learning algorithms to anticipate future behavior or identify trends. This will impose additional read load on the database.&lt;br /&gt;사용자는 과거 data를 query하고, machine learning algorithms을 활용하여, 미래 행동을 예측하거나 트렌드를 파악하기 위해 예측 분석을 수행하려 할 수도 있다.&amp;nbsp;이것은 database에 추가적인 read 부하를 줄 것이다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;In the end, depending on the application’s requirements, the data captured may have a shelf life and needs to be archived or deleted after a certain period of time.&lt;br /&gt;마지막으로, application의 요구 사항에 따라, 수집된 data는 보관 기간이 있을 수 있어, 일정 기간 후에 archive되거나 삭제되어야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;As you can see working with time-series data is not just simply storing the data, but requires a wide range of data platform capabilities including handling simultaneous read and write demands, advanced querying capabilities, and archival to name a few.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;시계열 data로 작업을 통해 알 수 있는 것은 단순히 data를 저장하는 것이 아니라, 동시 read/write 처리, 고급 query 기능 및 archive와 같은 광범위한 data platform 기능이 요구된다는 점이다.&lt;/p&gt;

&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Who is using MongoDB for time-series data?&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB provides all the capabilities needed to meet the demands of a highly performing time-series applications. One company that took advantage of MongoDB’s time series capabilities is Quantitative Investment Manager Man AHL.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB는 매우 성능이 뛰어난 시계열 application의 요구 사항을 만족시키는 데 필요한 모든 기능을 제공한다. MongoDB의 시계열 기능을 활용한 회사는 Quantitative Investment Manager Man AHL이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image3-q6vuu70xb2.png&quot; align=&quot;left&quot; width=&quot;40%&quot; height=&quot;40%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;Man AHL’s Arctic application leverages MongoDB to store high frequency financial services market data (about&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/mongodb-single-platform-all-financial-data-ahl&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;250M ticks per second&lt;/a&gt;). The hedge fund manager’s quantitative researchers (“quants”) use Arctic and MongoDB to research, construct and deploy new trading models in order to understand how markets behave. With MongoDB, Man AHL realized a 40x cost saving when compared to an existing proprietary database. In addition to cost savings, they were able to increase processing performance by 25x over the previous solution. Man AHL open sourced their&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/press/man-ahl-arctic-open-source&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Arctic project on GitHub&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Man AHL의&amp;nbsp;Arctic application은 MongoDB를 활용하여, 매우 빈번하게 발생하는 금융 서비스 시장의 data(&lt;a href=&quot;https://www.mongodb.com/blog/post/mongodb-single-platform-all-financial-data-ahl&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;초당 약 250M ticks&lt;/a&gt;)를 저장하였다. hedge fund manager의 연구원(금융시장분석가)은 시장이 행동하는 방식을 이해하기 위하여,&amp;nbsp;Arctic과 MongoDB를 사용하여 새로운 거래 모델을 연구, 구성, 배치하였다. MongoDB를 통해, Man AHL은 기존의 독점 database에 비하여 40배의 비용 절감 효과를 실현하였다. 비용 절감 외에도, 기존의 솔루션 대비 처리 성능을 25배 향상할 수 있었다. Man AHL은&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/press/man-ahl-arctic-open-source&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;GitHub에&amp;nbsp;&lt;/a&gt;&lt;a href=&quot;https://www.mongodb.com/press/man-ahl-arctic-open-source&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Arctic project&lt;/a&gt;를 open하였다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image1-ftyl6odm2z.jpg&quot; align=&quot;left&quot; width=&quot;40%&quot; height=&quot;40%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;Bosch Group is a multinational engineering conglomerate with nearly 300,000 employees and is the world’s largest automotive components manufacturer. IoT is a strategic initiative at Bosch, and so the company&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/customers/bosch&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;selected MongoDB as the data platform layer in its IoT suite&lt;/a&gt;. The suite powers IoT applications both within the Bosch group and in many of its customers in industrial internet applications, such as automotive, manufacturing, smart city, precision agriculture, and more. If you want to learn more about the key challenges presented by managing diverse, rapidly changing and high volume time series data sets generated by IoT platforms, download the&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/collateral/bosch-software-innovations-and-mongodb-internet-things-and-big-data&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Bosch and MongoDB whitepaper&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;Bosch Group은 약 30만명의 직원을 가진 다국적 엔지니어링 대기업으로, 세계 최대의 자동차 부품 제조업체이다. IoT는 Bosch의 전략적 결정으로,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/customers/bosch&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;MongoDB를 IoT 제픔군에서 data platform으로 선택&lt;/a&gt;했다. Bosch 그룹과 자동차 제조, smart city, 정밀 농업 등의 산업용 internet application의 많은 사용자들에게 IoT application을 제공한다. IoT platform에서 생성되는 다양하고 빠르게 변화하는 대용량 시계열 data에 대해 더 많이 알고 싶다면,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/collateral/bosch-software-innovations-and-mongodb-internet-things-and-big-data&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Bosch와 MongoDB 백서&lt;/a&gt;를 내려받자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://webassets.mongodb.com/_com_assets/cms/image2-xm743af8uc.png&quot; align=&quot;left&quot; width=&quot;40%&quot; height=&quot;40%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; max-width: 100%;&quot;&gt;Siemens is a global company focusing on the areas of electrification, automation and digitalization. Siemens developed “Monet,” a platform backed by MongoDB that provides advanced energy management services.&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/presentations/internet-of-things-milan-2016-monet-an-iot-energy-management-platform-based-on-mongodb&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Monet uses MongoDB&lt;/a&gt;&amp;nbsp;for real time raw data storage, querying and analytics.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;siemens는 전기, 자동화, 디지털 분야에 주력하는 글로벌 기업이다. siemens는 고급 에너지 관리 서비스를 제공하는 MongoDB 기반의 “Monet” platform을 개발하였다. 실시간 원시 data 저장, query, 분석을 위해,&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/presentations/internet-of-things-milan-2016-monet-an-iot-energy-management-platform-based-on-mongodb&quot; target=&quot;_blank&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Monet은 MongoDB를 사용&lt;/a&gt;한다.&lt;/p&gt;

&lt;h2 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 34px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Focus on application requirements&lt;/h2&gt;
&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;When working with time-series data it is imperative that you invest enough time to understand how data is going to be created, queried, and expired. With this information you can optimize your schema design and deployment architecture to best meet the application’s requirements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;시계열 data로 작업할 경우에는, data의 생성, query, 만료 방법을 이해하는데 충분한 시간을 투자해야 한다. 이 정보를 사용하여 application의 요구사항을 가장 잘 충족할 수 있도록 schema design과 배포 구조를 최적화할 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;You should not agree to performance metrics or SLAs without capturing the application’s requirements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;application의 요구사항을 파악하지 않고 성능 metric이나 SLA에 동의해서는 안된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;As you begin your time-series project with MongoDB you should get answers to the following questions:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;MongoDB로 시계열 project를 시작할 경우, 다음과 같은 질문에 대한 답을 얻어야 한다.&lt;/p&gt;

&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Write workload&lt;/h4&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;

&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What will the ingestion rate be? How many inserts and updates per second?&lt;br /&gt;수집 속도는 얼마인가? 초당 insert, update 수는 얼마나 되나?&lt;/li&gt;As the rate of inserts increases, your design may benefit from horizontal scaling via&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB auto-sharding&lt;/a&gt;, allowing you to partition and scale your data across many nodes&lt;br /&gt;insert 속도가 증가함에 따라, &lt;a href=&quot;https://docs.mongodb.com/manual/sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB auto-sharding&lt;/a&gt;를 통한 수평 확장으로 많은 node에 data를 분할하고 확장할 수 있어, 설계에 유리할 수 있다.
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;How many simultaneous client connections will there be?&lt;br /&gt;동시 client 연결 수는?&lt;/li&gt;While a single MongoDB node can handle many simultaneous connections from tens of thousands of IoT devices, you need to consider scaling those out with sharding to meet the expected client load.&lt;br /&gt;단일 MongoDB node는 수만개의 IoT device로 부터 동시에 발생하는 많은 연결을 처리할 수 있지만, 예상되는 client 부하를 고려하여, sharding으로 이를 scale out을 고려해야 한다.
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Do you need to store all raw data points or can data be pre-aggregated? If pre-aggregated, what summary level of granularity or interval is acceptable to store? Per minute? Every 15 minutes?&lt;br /&gt;모든 원시 데이터를 저장해야 하거나 data가 사전 집계될 수 있는가?&amp;nbsp;사전집계된 경우, 어떤 간격으로 저장될 수 있는가? 분별로? 15분마다?&lt;/li&gt;MongoDB can store all your raw data if you application requirements justify this. However, keep in mind that reducing the data size via pre-aggregation will yield lower dataset and index storage and an increase in query performance.&lt;br /&gt;MongoDB는 application의 모든 원시 data를 저장해야 한다면 할 수 있다.그러나, 사전 집계를 통해 data 크기를 줄이면, data 집합과 index 저장소가 줄어들고 query 성능이 향상된다.&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What is the size of data stored in each event?&lt;br /&gt;각 event에서 저장되는 data 크기는 얼마인가?&lt;/li&gt;MongoDB has an individual document size limit of 16 MB. If your application requires storing larger data within a single document, such as binary files you may want to leverage&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/gridfs/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB GridFS&lt;/a&gt;. Ideally when storing high volume time-series data it is a best practice to keep the document size small around 1 disk block size.&lt;br /&gt;MongoDB는 개별 document의 크기가 16MB로 제한되어 있다. application이 단일 document에 binary file처럼 더 큰 data를 저장해야 한다면, &lt;a href=&quot;https://docs.mongodb.com/manual/core/gridfs/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB GridFS&lt;/a&gt;를 활용할 수 있다. 이상적으로 대량의 시계열 data를 저장하는 경우, 1개의 disk block 크기 정도로 document 크기를 작게 유지하는 것이 최선이다.&lt;/ul&gt;
&lt;/div&gt;

&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Read workload:&lt;/h4&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;How many read queries per second?&lt;br /&gt;초당 read query의 수는?&lt;/li&gt;A higher read query load may benefit from additional&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/indexes/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;indexes&lt;/a&gt;&amp;nbsp;or horizontal scaling via MongoDB auto-sharding.&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;As with write volumes, reads can be scaled with auto-sharding. You can also distribute read load across secondary replicas in your replica set.&lt;br /&gt;많은 read query 부하는 추가 &lt;a href=&quot;https://docs.mongodb.com/manual/indexes/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;indexes&lt;/a&gt;나 MongoDB auto-sharding을 통한 수평 확장을 통해 해소할 수 있다.&lt;br style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;write와 마찬가지로,&amp;nbsp;read는 auto-sharding으로 확장될 수 있다. replica set의 secondary replicas로 read 부하를 분산할 수도 있다.&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Will clients be geographically dispersed or located in the same region?&lt;br /&gt;clients가 지리적으로 분산되어 있거나 동일 지역에 위치하는가?&lt;/li&gt;You can reduce network read latency by deploying&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/replica-set-architectures/#distribute-members-geographically&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;read-only secondary replicas&lt;/a&gt;&amp;nbsp;that are geographically closer to the consumers of the data.&lt;br /&gt;data 사용자에게 지리적으로 더 가까운 &lt;a href=&quot;https://docs.mongodb.com/manual/core/replica-set-architectures/#distribute-members-geographically&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;read 전용 secondary replicas&lt;/a&gt;&amp;nbsp;를 사용하여, 네트워크 read 대기시간을 줄일 수 있다.&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What are the common data access patterns you need to support? For example, will you retrieve data by a single value such as time, or do you need more complex queries where you look for data by a combination of attributes, such as event class, by region, by time?&lt;br /&gt;지원해야 하는 일반적인 data access pattern은 무엇인가? 예를 들어, 시간 같은 단일 값으로 data를 검색하는가? 또는 시간이나 지역별로 event class 같은 속성의 조합으로 data를 찾는 더 복잡한 query가 필요한가?&lt;/li&gt;Query performance is optimal when proper indexes are created. Knowing how data is queried and defining the proper indexes is critical to database performance. Also, being able to modify indexing strategies in real time, without disruption to the system, is an important attribute of a time-series platform.&lt;br /&gt;query 성능은 적절한 index가 생성될 경우에 최적이다. data를 query하는 방법을 알고 적절한 index를 정의하는 것은 database 성능에 있어 중요하다. 또한, 시스템 중단 없이, index 전략을 변경할 수 있다는 것은 시계열 platform의 중요한 속성이다.&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What analytical libraries or tools will your consumers use?&lt;br /&gt;사용자가 사용할 분석 라이브러리나 tool은?&lt;/li&gt;If your data consumers are using tools like Hadoop or Spark, MongoDB has a&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/spark-connector/current/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Spark Connector&lt;/a&gt;&amp;nbsp;that integrates with these technologies. MongoDB also has drivers for&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/python/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Python&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/community-supported-drivers/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;R&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/community-supported-drivers/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Matlab&lt;/a&gt;&amp;nbsp;and other platforms used for analytics and data science.&lt;br /&gt;사용자가 Hadoop 이나 Spark 같은 tool을 사용하고 있다면, MongoDB는 이런 기술을 토합할 수 있는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/spark-connector/current/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;MongoDB Spark Connector&lt;/a&gt;&amp;nbsp;를 가지고 있다. MongoDB는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/python/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Python&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/community-supported-drivers/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;R&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/ecosystem/drivers/community-supported-drivers/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Matlab&lt;/a&gt;&amp;nbsp;그리고 분석 및 데이터 과학에 사용되는 기타 platform용 driver도 가지고 있다.&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Does your organization use BI visualization tools to create reports or analyze the data?&lt;br /&gt;BI 시각화 tool을 사용하여 보고서를 작성하거나 data를 분석하는가?&lt;/li&gt;MongoDB integrates with most of the major BI reporting tools including Tableau, QlikView, Microstrategy, TIBCO, and others via the MongoDB BI Connector. MongoDB also has a native BI reporting tool called MongoDB Charts, which provides the fastest way to visualize your data in MongoDB without needing any third-party products.&lt;br /&gt;MongoDB는 MongoDB BI Connector를 통하여 Tableau, QlikView, Microstrategy, TIBCO 등의 주요 BI 보고서 tool의 대부분과 통합된다. MongoDB는 MongoDB Charts 라는 native BI 보고서 tool도 가지고 있는데, 이것은 다른 3'rd party 제품없이, MongoDB에서 data를 시각화하는 가장 빠른 방법을 제공한다.&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; color: rgb(66, 73, 79); font-size: 16px;&quot;&gt;Data retention and archival:&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What is the data retention policy? Can data be deleted or archived? If so, at what age?&lt;br /&gt;data 보존 정책은? data를 삭제하거나 archive하는가? 기간은?&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;If archived, for how long and how accessible should the archive be? Does archive data need to be live or can it be restored from a backup?&lt;br /&gt;archive한다면, 기간은 얼머나 되며, 어떻게 접근 가능한가? archive data가 실시간이어야 하는가? backup에서 복구될 수 있는가?&lt;/li&gt;There are various strategies to remove and archive data in MongoDB. Some of these strategies include using&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/index-ttl/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;TTL indexes&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://youtu.be/NiKPxN5IECY&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Queryable Backups&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/zone-sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;zoned sharding&lt;/a&gt;&amp;nbsp;(allowing you to create a tiered storage pattern), or simply creating an architecture where you just drop the collection of data when no longer needed.&lt;br /&gt;MongoDB에는 삭제와 archive를 위한 다양한 정책이 있다. 이들 정책에는&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/index-ttl/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;TTL indexes&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://youtu.be/NiKPxN5IECY&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;Queryable Backups&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/core/zone-sharding/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;zoned sharding&lt;/a&gt;&amp;nbsp;(계층화된 저장 pattern을 생성할 수 있음) 또는 더 이상 필요 없는 경우 collection을 ㅅ단순히 제거하는 아키텍처의 생성등을 포함한다.&lt;/ul&gt;
&lt;/div&gt;

&lt;h4 style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-family: &amp;quot;Akzidenz Grotesk BQ Medium&amp;quot;, Helvetica, Arial; font-weight: 400; font-size: 20px; color: rgb(66, 73, 79); background-color: rgb(247, 247, 247);&quot;&gt;Security:&lt;/h4&gt;

&lt;div class=&quot;itemizedlist&quot; style=&quot;box-sizing: border-box; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; padding: 0px 0px 0px 30px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What users and roles need to be defined, and what is the least privileged permission needed for each of these entities?&lt;br /&gt;어떤 사용자와 역활을 정의해야 하는가? 그리고, 이들 각각에 대해 필요한 최소한의 권한은?&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;What are the encryption requirements? Do you need to support both in-flight (network) and at-rest (storage) encryption of time series data?&lt;br /&gt;암호화 요구 사항은? 시계열 data의 network, storage 암호화를 지원해야 하는가?&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Do all activities against the data need to be captured in an audit log?&lt;br /&gt;data에 대한 모든 activities를 audit log에 저장해야 하는가?&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; list-style-type: disc; line-height: 1.5em; margin: 15px 0px;&quot;&gt;Does the application need to conform with GDPR, HIPAA, PCI, or any other regulatory framework?&lt;br /&gt;application이 GDPR, HIPAA, PCI 또는 기타 규제 framework을 준수해야 하는가?&lt;/li&gt;The regulatory framework may require enabling encryption, auditing, and other security measures. MongoDB supports the&amp;nbsp;&lt;a href=&quot;https://docs.mongodb.com/manual/security/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;security configurations&lt;/a&gt;&amp;nbsp;necessary for these compliances, including encryption at rest and in flight, auditing, and granular role-based access control controls.&lt;br /&gt;규제 framework은 암호화, audit 그리고 기타 보안 조치가 필요하다. MongoDB는 network, storage 암호화, audit, 세분화된 역활 기반 access control을 포함하여, 이러한 compliance에 필요한 &lt;a href=&quot;https://docs.mongodb.com/manual/security/&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot;&gt;security configurations&lt;/a&gt;을 지원한다.&lt;/ul&gt;
&lt;/div&gt;

&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;While not an exhaustive list of all possible things to consider, it will help get you thinking about the application requirements and their impact on the design of the MongoDB schema and database configuration. In the next blog post, &quot;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-2-schema-design-best-practices&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot; class=&quot;tx-link&quot;&gt;Part 2: Schema design for time-series data in MongoDB&lt;/a&gt;” we will explore a variety of ways to architect a schema for different sets of requirements, and their corresponding effects on the application’s performance and scale. In part 3, &quot;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-3--querying-analyzing-and-presenting-timeseries-data&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; color: rgb(19, 170, 82);&quot; class=&quot;tx-link&quot;&gt;Time Series Data and MongoDB: Part 3 – Querying, Analyzing, and Presenting Time-Series Data&lt;/a&gt;&quot;, we will show how to query, analyze and present time-series data.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;고려해야 할 모든 사항에 대한 전체 목록은 아니지만, application 요구 사항과 그것이 MongoDB&lt;b&gt;&amp;nbsp;&lt;/b&gt;schema와 database 구성에 미치는 영향에 대해 생각해 보는데, 도움이 될 것이다.&amp;nbsp;다음 게시물인 &quot;&lt;a href=&quot;https://drscg.tistory.com/655&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Part 2: Schema design for time-series data in MongoDB&lt;/a&gt;”에서, 다양한 요구 사항에 대한 schema를 설계하는 다양한 방법과 그 요구 사항들이 application의 성능과 규모에 미치는 영향을 알아보자.&amp;nbsp;part 3인, &quot;&lt;a href=&quot;https://drscg.tistory.com/656&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Time Series Data and MongoDB: Part 3 – Querying, Analyzing, and Presenting Time-Series Data&lt;/a&gt;&quot;에서, 시계열 data를 query, analyze, 표시하는 방법을 설명한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased; margin: 15px 0px; font-size: 16px; line-height: 24px; color: rgb(66, 73, 79); font-family: &amp;quot;Akzidenz Grotesk BQ Light&amp;quot;, Helvetica; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.mongodb.com/blog/post/time-series-data-and-mongodb-part-1-introduction&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(19, 170, 82); box-sizing: border-box; -webkit-font-smoothing: subpixel-antialiased;&quot;&gt;Time Series Data and MongoDB: Part 1 – An Introduction&lt;/a&gt;&lt;/p&gt;</description>
      <category>MongoDB</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/654</guid>
      <comments>https://drscg.tistory.com/654#entry654comment</comments>
      <pubDate>Mon, 21 Jan 2019 17:58:57 +0900</pubDate>
    </item>
    <item>
      <title>2018.10.23 - 번역 - Space Savings: A Lesser Known Benefit of Index Sorting in Elasticsearch ...</title>
      <link>https://drscg.tistory.com/649</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In Elasticsearch 6.0, we released a new feature called&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/index-sorting-elasticsearch-6-0&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;index sorting&lt;/a&gt;. Read up more on this on the linked blog, but in short, what this does is to take the documents at index time and sort them by a key or set of keys in an order of your choosing. This has a few advantages that we’ve talked about:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch 6.0 에서&amp;nbsp;&lt;a href=&quot;http://drscg.tistory.com/636&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;index sorting&lt;/a&gt;이라는 새로운 기능이 출시되었다. link된 게시물에서 이에 대해 자세히 읽어 보자. 간단히 말하자면, index시에 document를 가져와 선택한 key나 key의 집합으로 정렬하는 것이다. 여기에는 다음과 같은 몇 가지 장점이 있다.&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If you ask Elasticsearch to return a set of results sorted by the same key you’ve sorted the index on, Elasticsearch doesn’t need to do the sorting of results at query time. They’re already pre-sorted!&lt;br /&gt;Elasticsearch에서 index를 정렬한 것과 동일한 key로 정렬된 결과를 반환하도록 요청하면,&amp;nbsp; Elasticsearch는 query시에 결과를 정렬하지 않아도 된다. 이미 미리 정렬되어 있다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If you don’t need the total hit count and you’re sorting by the sort key, Elasticsearch can actually short circuit the query once it’s found enough hits to meet your request. This can result in unbounded query performance improvements.&lt;br /&gt;전체 수가 필요하지 않고 정렬 key로 정렬하려면, Elasticsearch는 request에 부합하는 hit를 발견하면, 실제로 query를 중단시킬 수 있다. 이로 인해 무한한 query 성능 향상을 기대할 수 있다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If you have queries that use ANDs across different fields, index sorting on those fields can end up grouping them in such a way that Elasticsearch can skip large blocks of documents that don’t match, which can also make search faster.&lt;br /&gt;서로 다른 query간에 AND를 사용하는 query가 있을 경우, 해당 field에 대한 index sorting은 Elasticsearch가 일치하지 않는 document의 큰 block을 건너뛸 수 있도록 하는 방식으로 그룹화 하여, search 속도를 더 높일 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In short, index sorting can make search faster in some cases: especially cases where you have a few common ways people are searching and sorting your documents. What isn’t often talked about is that index sorting can also reduce the amount of disk your indices are using. I’ll talk about why and how here.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;즉, index sorting을 사용하면, 특정 경우에 search 속도를 더 빠르게 할 수 잇다. 사람들이 document를 search하고 정렬하는 몇 가지 공통적인 방법이 있는 경우 특히 그렇다. 자주 언급되지 않는 사항은, index sorting을 사용하면, index가 사용하고 있는 disk의 양을 줄일 수도 있다는 점이다. 그 이유와 방법에 대해 이야기 하겠다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Caution: Index Sorting Isn’t for Everyone&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Before I talk about what happens, I do want to mention once again that index sorting isn’t for everyone. It causes the sort action to happen at index time. Sorting is an expensive operation, so if indexing speed is a primary concern, exercise caution before turning it on. It can slow write performance by as much as 40-50%. So if indexing throughput is a primary concern, as it often is in high-volume logging, metrics, and security analytics use cases, index sorting probably isn’t for you. It can be useful if you have a lower index rate, if query speed is the most important thing to your use case, or if you have a regular reindex process anyway that acts during off-peak-indexing times.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이야기하기 전에, index sorting이 모두에게 적절하지는 않다라는 사실을 다시 한번 이야기한다. 정렬&amp;nbsp;동작이 index시에 발생하기 때문이다. 정렬은 비용이 많이 발생하는 연산이므로, index 속도가 중요하다면, 바꾸기 전에 주의하자. 쓰기 성능이 40-50% 정도 낮아질 수 있다. 따라서, 대용량 logging, 분석, 보안 분석 사례처럼, index 처리량이 중요하다면, index sorting은 아마도 여러분에게 적당하지 않다. index 속도가 낮거나 query 속도가 가장 중요하거나, 사용량이 적은 시간에 작동하는 정기적인 reindex process의 경우, 이것이 유용할 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Examining Potential Sort Orders: An Example&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Suppose I run an Elasticsearch instance that’s used for product search. Imagine that I have a set of documents that, at index time, look something like the following (I’ll flatten into a matrix just for ease of viewing):&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;제품 search를 위해&amp;nbsp;사용되는 Elasticsearch instance를 실행한다고 가정해 보자. index시에 다음처럼 보이는 document 집합을 가지고 있다고 가정해 보자. 보기 쉽게 표로 만들었다.&lt;/p&gt;&lt;table width=&quot;100%&quot; style=&quot;box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb(247, 247, 247); line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product ID&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product Category&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product Color&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;206f467b-8cfe&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Red&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$97.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;4f89fbec-acc3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$120.50&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;47771396-dfe3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Grey&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$170.10&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;c6c8fbdf-651b&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Hats&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Yellow&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$15.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;dc18c426-0eb3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Red&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$107.20&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;ee304259-df57&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$88.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;9332c0ac-e55e&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$49.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;30e96765-52a1&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Hats&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Blue&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$11.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;811cc8ca-d6bb&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Blue&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$92.99&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;And now suppose we wanted to enable index sorting. What would we sort by? We have some options: product category, product color, and/or price may be interesting. If user searches are almost always just sorted by price and we don’t have filters for category or color, sorting by price may make the most sense for a sort key. However, it’s probably likely that users are at least selecting a category before finding the cheapest item, and they also may have preference for a color. Let’s sort by category ascending, color ascending, and then price ascending.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그리고, 이제 index sorting을 활성화한다고 가정해 보자. 무엇으로 정렬할까? product category, product color, 그리고 price가 괜찮을 것 같다. 사용자 search가 거의 항상 price로 정렬되고, category나&amp;nbsp;color로 filter하지 않는다고 하면, price에 의한 정렬이 정렬 key에 가장 적절할 것이다. 그러나, 사용자는 가장 저렴한 제품을 검색하기 전에 최소한 하나의 category를 선택하거나 선호하는 color를 가질 수 있다. category 오름차순, color 오름차순, price 오름차순으로 정렬하자.&lt;/p&gt;&lt;pre class=&quot;“prettyprint”&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; display: inline-block; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&quot;sort.field&quot; : [&quot;product_category&quot;, &quot;product_color&quot;, &quot;price&quot;], &quot;sort.order&quot; : [&quot;asc&quot;, &quot;asc&quot;, &quot;asc&quot;]
&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The sorted index looks something like this:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;정렬된 index는 다음과 같다.&lt;/p&gt;&lt;table width=&quot;100%&quot; style=&quot;box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb(247, 247, 247); line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product ID&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product Category&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Product Color&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;30e96765-52a1&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Hats&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Blue&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$11.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;c6c8fbdf-651b&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Hats&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Yellow&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$15.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;ee304259-df57&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$88.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;4f89fbec-acc3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$120.50&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;811cc8ca-d6bb&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Blue&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$92.99&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;47771396-dfe3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Jackets&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Grey&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$170.10&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;9332c0ac-e55e&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Black&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$49.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;206f467b-8cfe&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Red&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$97.00&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;dc18c426-0eb3&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Shoes&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Red&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;$107.20&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;A few interesting things now happen, which I’ll explain by example:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이제 몇 가지 흥미로운 점이 나타난다. 예제로 설명하겠다.&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If I ask Elasticsearch for the top 2 cheapest shoes sorted by price and I don’t ask it for a total hit count of all shoes, it needs to find the block of shoes, which it can do efficiently by skipping past all of the other categories. And once it’s found just 2 results, it can stop processing the rest of the index and return. Note that in order for this to work, you must include every element of the sort order in the index, even if you have filters that match.&lt;br /&gt;price로 정렬한 상위 2개의 가장 싼 shoes를&amp;nbsp;Elasticsearch에 요청하고, 일치하는 모든 shoes의 수를 요청하지 않는다면, 다른 모든 category를 생략하여 효율적으로 할 수 있도록, shoes의 block을 찾아야 한다.&amp;nbsp;그리고, 2개의 결과를 찾자마자 index의 나머지 부분을 처리하는 것을 중단하고 return할 수 있다.&amp;nbsp;이를 위해서는 일치하는 filter가&amp;nbsp;있더라도, index에 정렬 순서의 모든 요소를 포함해야 한다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If I ask Elasticsearch for&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;product_category:Jackets AND product_color:Black&lt;/code&gt;, Elasticsearch can skip past all the hats and all the shoes, and within Jackets, it can find the “Black” ones and once it’s done looking at those, it can skip past all of the other colors efficiently.&lt;br /&gt;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;product_category:Jackets AND product_color:Black&lt;/code&gt;를 Elasticsearch에 요청한다면, Elasticsearch는 모든 hats과 shoes를 생략할 수 있고, Jackets내에서, “Black”을 찾을 수 있고, 일단 해당하는 것을 다 찾으면, 다른 모든 colors를 효율적으로 생략할 수 있다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;Elasticsearch uses compression significantly behind the scenes. The compression works when there are repeated values and it does so most efficiently when the repeated values are near each other in the index. By having all of the “jackets” or “colors” next to one another, those can be efficiently compressed on disk. That means less disk space, but it also means the operating system will be able to fit more into the filesystem cache, which will make things even faster.&lt;br /&gt;Elasticsearch는 압축을 많이 사용한다.&amp;nbsp;압축은 반복되는 값이 있을 경우 동작하며, index에서 반복되는 값이 서로 가까이 있을 경우 가장 효울적으로 동작한다. 모든 “jackets” 이나&amp;nbsp;“colors” 를 서로 옆에 두면, disk에서 효율적으로 압축될 수 있다. 즉, disk 공간이 적게 소모되는 것을 의미하지만, 또한, OS가 filesystem cache에 더 잘 적응할 수 있다는 것을 의미하며, 이는 더 빠른 속도를 가져온다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In general, it’s best practice to use sort orders of increasing cardinality so that we can get the benefit of as many repeated values in a row as possible.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;일반적으로, row에서 가능한 한 많은 반복된 값의 이점을 얻을 수 있도록, cardinality가 증가하는 정렬 순서를 사용하는 것이 가장 좋다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;How Much Disk Space Will I Save?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;So how much disk space will you save by turning on index sorting? As with many things in life, the answer is “it depends.” One of the big things it depends on is the cardinality of the field you sort by. However, the disk savings can be substantial. Last weekend, I decided to move some IoT/home automation data I’ve been using for a personal project off an old machine and onto a new one. There are faster ways to do this data migration like snapshot/restore, but I had the time to do a reindex and was interested to see how much savings index sorting may provide. I first did the remote reindex into an unsorted index:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그렇다면, idnex sorting을 사용하면 disk 공간을 얼마나 절약할 수 있을까? 만사가 그렇지만, 답은 &quot;경우에 따라 다르다&quot; 이다. 가장 큰 요소는 정렬하려는 field의 cardinality이다. 그러나 disk 절약 효과는 상당할 수 있다. 지난 주말, 개인 프로젝트에서 사용하던 IoT/home automation data를 새로운 machine으로 옮기기로 했다. snapshot/restore 처럼 data migration을 하는 더 빠른 방법이 있지만, reindex할 시간이 있었고 index sorting을 통해 얼마나 많은 절감 효과가 있는지 알고 싶었다. 먼저, 정렬되지 않은 index에 원격으로 reindex했다.&lt;/p&gt;&lt;pre class=&quot;“prettyprint”&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; display: inline-block; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;status    index           pri    docs.count    docs.deleted    pri.store.size 
open      devices-2017    1      33310674      0               4.2gb
&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;It’s a little over 30 devices and each sends its status back about once every 30 seconds, so the total index rate is about 1 document per second. I’m never anywhere close to being throttled on the indexing side, and I’d have to massively increase the index rate or number of devices for that to change. It seems like a reasonable candidate for index sorting. The data consists of hardware IDs, hardware names, times, and various sensor readings like the temperature or whether the device is on or off at the time or what some other sensor level is. I sorted the index by device ID and then by time, my thinking being that it’s likely that for a given device, there’s a reasonably high chance that there will be similar or the same values around the same time, which may lead to better compression. For example, if a switch is turned into an “on” state at 7:00:00, there’s a pretty high chance that it will be “on” at 7:00:30, 7:01:00, and at least several minutes after, and that should compress nicely. The sorted index stats show…&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;30개가 약간 넘는 장치가 있고, 각각은 매 30초마다 상태를 전송한다. 따라서, 총 index 속도는 초당 약 1개의 document이다. 이를 변경하기 위해서는, index쪽에서는 조절할 수 있는 곳이 거의 없었고, index 속도나 장치의 수를 크게 늘려야 한다. index sorting의 적절한 후보인 것 같다. data는 HW ID, name,&amp;nbsp;시간, 온도나 해당 시점에 장치의 on/off 또는 기타 sensor 수준으로 구성된다.&amp;nbsp; 특정 장치에서, 동일한 시간대에는 비슷하거나 동일한 값이 있을 가능성이 상당히 높기 때문에, 압축이 더 잘될 수 있다고 생각해, index를 장치 ID, 그 다음에 시간으로 정렬했다. 예를 들자면, 7:00:00에 switch가 &quot;on&quot; 상태가 되면, 7:00:30, 7:01:00, 그리고 적어도 몇 분 후까지는 &quot;on&quot; 일 가능성이 상당히 높다. 그리고, 그것은&amp;nbsp;잘&amp;nbsp;압축될 것이다. 정렬된 index 상태는 다음과 같다.&lt;/p&gt;&lt;pre class=&quot;“prettyprint”&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; display: inline-block; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; line-height: 1.42857; word-break: break-all; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;status    index           pri    docs.count     docs.deleted    pri.store.size
open      devices-2017    1      3310674        0               2.5gb
&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;About a 40% disk savings!&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;약 40%의 disk 절약이다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Caution Again&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;At this point, I feel compelled to caution everyone again, because almost everyone would appreciate using 40% less disk for the same data. I’ll sum it up into two quick statements:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 시점에서 다시 한번 모두에게 경고해야 한다고 생각한다. 왜냐하면, 거의 모든 이들이 동일한 data에 40% disk 절약을 높이 평가할 것이기 때문이다. 2가지로 요약하겠다.&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;Your mileage will vary. I used index sorting on another dataset and found a 20% savings. Be thoughtful about what fields you sort on.&lt;br /&gt;이득은 다양할 것이다. 다른 data 집합에 index sorting을 사용했더니, 20%를 절약했다. 정렬하려는 field에 대해 신중하게 생각하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;Your index rate will be slowed. If the speed of indexing is really important to you, e.g. you’re running in a high volume logging or metrics use case, you’re likely sensitive to the number of documents you can get indexed in a short amount of time and it may not be a good choice to turn on index sorting as a result.&lt;br /&gt;index 속도가 느리게 될 것이다. index 속도가 중요(예: 대용량 logging, metric 사용 사례)하다면, 짧은 시간에 index할 수 있는 document의 수에 민감할 수 있어, 결과적으로 index sorting을 사용하는 것은 좋은 선택이 아닐 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;If you’re much more sensitive to disk space than index speed or your index volumes are low enough that you’re not limited by index speed, it may be interesting to see if index sorting is worth it for you.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;index 속도보다 disk 공간에 훨씬 더 민감하거나, index 양이 index 속도에 의해 제한되지 않을 만큼 충분히 적다면, index sorting이 쓸만한지 알아보는 것이 좋다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/space-savings-a-lesser-known-benefit-of-index-sorting-in-elasticsearch&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt; Space Savings: A Lesser Known Benefit of Index Sorting in Elasticsearch&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>cardinality</category>
      <category>disk</category>
      <category>index sorting</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/649</guid>
      <comments>https://drscg.tistory.com/649#entry649comment</comments>
      <pubDate>Tue, 8 Jan 2019 10:09:59 +0900</pubDate>
    </item>
    <item>
      <title>2018.10.18 - 번역 - Efficient Duplicate Prevention for Event-Based Data in Elasticsearch ...</title>
      <link>https://drscg.tistory.com/648</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The Elastic Stack is used for a lot of different use cases. One of the most common is to store and analyze different types of event or time-series based data, e.g. security events, logs, and metrics. These events often consist of data linked to a specific timestamp representing when the event occurred or was collected and there is often no natural key available to uniquely identify the event.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elastic Stack은 다양한 경우에 사용된다. 가장 일반적인 경우 중 하나는 다양한 유형의 event나 시간 기반의 data(보안 event, log, metric 등)을 저장하고 분석하는 것이다. 이들 event는 흔히 event가 발생하거나 수집된 시간을 나타내는 특정 timestamp에 연결된 data로 구성된다. 그리고, event를 고유하게 식별할 수 있는 key는 없는 경우가 많다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;For some use cases, and maybe even types of data within a use case, it is important that the data in Elasticsearch is not duplicated: Duplicate documents may lead to incorrect analysis and search errors. We started looking at this last year in the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/logstash-lessons-handling-duplicates&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;introduction to duplicate handling using Logstash&lt;/a&gt;&amp;nbsp;blog post, and in this one we will dig a bit deeper and address some common questions.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;일부 사용 사례와 그 안의 event data 유형에서, Elasticsearch내의 data가 중복되지 않는 것이 중요하다. docoument가 중복되면, 올바르지 않은 분석과 search 오류가 발생한다. 작년에&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/logstash-lessons-handling-duplicates&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;introduction to duplicate handling using Logstash&lt;/a&gt;&amp;nbsp;게시물에서 이를 살펴보았는데, 여기에서 좀 더 깊이 살펴보고 몇 가지 공통적인 질문에 답할 것이다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Indexing into Elasticsearch&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When you index data into Elasticsearch, you need to receive the response to be sure that the data has been successfully indexed. If an error, e.g. connection error or node crash, prevents you from receiving it, you can not be sure whether any of the data has been indexed or not. When clients encounter this type of scenario, the standard way to ensure delivery is to retry, which may lead to the same document being indexed more than once.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;data를 Elasticsearch에 index할 때, data가 성공적으로 index되었는지를 확인하려면 response를 받아야 한다. 오류(연결 오류, node 장애 등)로 인해 response를 받지 못하면, data가 index되었는지 여부를 알 수 없다. client가 이런 종류의 문제를 접하는 경우, 전송을 보장하는 표준적인 방법은 다시 시도하는 것인데, 이로 인해 동일한 document가 두 번 이상 index될 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As described in the blog post on duplicate handling, it is possible to get around this by defining a unique ID for each document in the client rather than having Elasticsearch automatically assign one at indexing time. When a duplicate document is written to the same index, this will result in an update instead of the document being written a second time, which prevents duplicates.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;중복을 다루는 게시물에서 설명했듯이, index시에 Elasticsearch에서 자동으로 고유한 ID를 할당하는 대신, client에서 각 document에 대해 고유한 ID를 정의하여 이 문제를 해결할 수 있다. 중복 document가 동일한 index에 쓰여지면, document가 2번째로 작성되는 대신 update가 발생하여, 중복이 방지된다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;UUIDs vs hash-based document ids&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When deciding on what type of identifier to use, there are two main types to choose from.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;어떤 형태의 ID를 사용할 것인가를 결정해야 할 경우, 2가지 방법이 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Universally_unique_identifier&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Universally Unique Identifiers&lt;/a&gt;&amp;nbsp;(UUIDs) are identifiers based on 128-bit numbers that can be generated across distributed systems, while for practical purposes being unique. This type of identifier generally has no dependence on the content of the event it is associated with.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Universally_unique_identifier&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Universally Unique Identifiers&lt;/a&gt;&amp;nbsp;(UUIDs)는 분산 시스템에서 생성될 수 있는 128-bit 숫자 기반의 구분자로서, 실제로 유일하다. 이런 유형의 ID는 일반적으로 관련된 event의 내용과는 무관하다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In order to use UUIDs to avoid duplicates, it is essential that the UUID is generated and assigned to the event before the event passes any boundary that does guarantee that the event is being delivered exactly once. This in practice often means that the UUID must be assigned at the point of origin. If the system where the event originates cannot generate a UUID, a different type of identifier may need to be used.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;UUID를 사용하여 중복을 피하기 위해서는, event가 정확히 한 번 전송된다는 것을 보장하는 어떤 경계에 event가 전달되기 전에 UUID가 생성되고 event에 할당되어야 한다. 실제 상황에서 이것은 출처에서 UUID가 할당돠어야 함을 의미한다. event가 발생한 시스템에서 UUID를 생성할 수 없는 경우, 다른 형태의 ID를 사용해야 할 수도 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The other main type of identifier are ones where a&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Hash_function&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;hash function&lt;/a&gt;&amp;nbsp;is used to generate a numeric hash based on the content of the event. The hash function will always generate the same value for a specific piece of content, but the generated value is not guaranteed to be unique. The&amp;nbsp;&lt;a href=&quot;https://preshing.com/20110504/hash-collision-probabilities/&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;probability of a hash collision&lt;/a&gt;, which is when two different events result in the same hash value, depends on the number of events in the index as well as the type of hash function used and the length of the value it produces. A hash of at least 128 bits in length, e.g. MD5 or SHA1, generally provides a good compromise between length and low collision probability for a lot of scenarios. For even greater uniqueness guarantees, an even longer hash like SHA256 can be used.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;다른 주요 유형의 ID는&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Hash_function&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;hash function&lt;/a&gt;&amp;nbsp;을 사용하여 event의 내용을 기반으로 한 numeric hash를 생성하는 것이다. hash function은 특정 내용에 대해서는 항상 동일한 값을 생성하지만 생성된 값은 고유함을 보장하지 않는다. 2개의 다른 event가 동일한 hash 값을 가지는&amp;nbsp;&lt;a href=&quot;https://preshing.com/20110504/hash-collision-probabilities/&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;hash 충돌 확률&lt;/a&gt;은 index의 event 수, 사용된 hash function의 유형, 생성된 값의 길이에 따라 다르다. MD5, SHA1 같은 최소 128 bit의 hash는 일반적으로 많은 경우에서 길이와 낮은 충돌 확률 사이의 좋은 절충안이다. 더 큰 유일함을&amp;nbsp;보장하려면, SHA256 처럼 훨씬 더 긴 hash를 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As a hash-based identifier depends on the content of the event, it is possible to assign this at a later processing stage as the same value will be calculated wherever it is generated. This makes it possible to assign this type of IDs at any point before the data is indexed into Elasticsearch, which allows for flexibility when designing an ingest pipeline.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;hash 기반 ID는 event의 내용에 따라 다르므로, 나중에 처리 단계에서 이를 할당하는 것이 가능하다. 어디에서 생성되더라도 동일한 값을 계산하기 때문이다. 이렇게 하면, data를 Elasticsearch에 index하기 전에, 어디에서라도, 이런 유형의 ID를 할당할 수 있어, ingest pipeline 설계시 유연성을 가질 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Logstash has support for calculating UUIDs and a range of popular and common hash functions through the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/logstash/6.4/plugins-filters-fingerprint.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;fingerprint filter plugin&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;logstash는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/logstash/6.4/plugins-filters-fingerprint.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;fingerprint filter plugin&lt;/a&gt;&amp;nbsp;을 통해 UUID와 널리 사용되는 일반적인 hash function의 범위를 계산할 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Choosing an efficient document id&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When Elasticsearch is allowed to assign the document identifier at indexing time, it can perform optimizations as it knows the generated identifier can not already exist in the index. This improves indexing performance. For identifiers generated externally and passed in with the document, Elasticsearch must treat this as a potential update and check whether the document identifier already exists in existing index segments, which requires additional work and therefore is slower.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch가&amp;nbsp;index시에 document ID를 할당할 수 있는 경우, 생성된 ID가 index에 존재할 수 없다는 것을 이미 알기 때문에, 최적화를 수행할 수 있다. 이렇게 하면 index 성능이 향상된다. ID를 외부에서 생성하여 document와 함께 전달하는 경우, Elasticsearch는 이것을 잠재적 update로 간주하고, document ID가 기존의 index segment에 이미 존재하는지를 확인해야 하는데, 이는 추가 작업이 필요하고, 따라서 더 느려진다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Not all external document identifiers are created equal. Identifiers that gradually increase over time based on sorting order generally result in better indexing performance than completely random identifiers. The reason for this is that it is possible for Elasticsearch to quickly determine whether an identifier exists in older index segments based solely on the minimum and maximum identifier value in that segment rather than having to search through it. This is described in this&amp;nbsp;&lt;a href=&quot;http://blog.mikemccandless.com/2014/05/choosing-fast-unique-identifier-uuid.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;blog post&lt;/a&gt;, which is still relevant even though it is getting a bit old.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;모든 외부 document ID가 동일하게 생성되는 것은 아니다. 정렬 순서를 기준으로 시간에 따라 점차 증가하는 ID는 완전히 무작위인 ID보다 더 나은 index 성능을 가진다. 그 이유는 Elasticsearch가 ID를 검색하는 대신 최소 최대 ID 값만을 기반으로, 해당 ID가 기존 index segment에 존재하는지 여부를 더 빠르게 판단할 수 있기 때문이다. 이것은 약간 오래되었지만 여전히 관련있는 이&amp;nbsp;&lt;a href=&quot;http://blog.mikemccandless.com/2014/05/choosing-fast-unique-identifier-uuid.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;게시물&lt;/a&gt;에 설명되어 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Hash-based identifiers and many types of UUIDs are generally random in nature. When dealing with a flow of events where each has a defined timestamp, we can use this timestamp as a prefix to the identifier to make them sortable and thereby increase indexing performance.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;hash기반의 ID와 많은 유형의 UUID는 일반적으로 무작위이다. 각 event가 정의된 timestamp를 가진 event flow를 처리하는 경우, 이 timestamp를 ID의 prefix로 사용하여, 정렬 가능하게 하여, index 성능을 증가시킬 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Creating an identifier prefixed by a timestamp also has the benefit of reducing the hash collision probability, as the hash value only has to be unique per timestamp. This makes it possible to use shorter hash values even in high ingest volume scenarios.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;또한, timestamp를 prefix로 사용한 ID를 생성하면, hash 충돌 확률을 줄일 수 있다. hash 값은 timestamp마다 고유해 지기 때문이다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;We can create these types of identifiers in Logstash by using the fingerprint filter plugin to generate a UUID or hash and a Ruby filter to create a hex-encoded string representation of the timestamp. If we assume that we have a&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;message&lt;/code&gt;&amp;nbsp;field that we can hash and that the timestamp in the event has already been parsed into the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;@timestamp&lt;/code&gt;&amp;nbsp;field, we can create the components of the identifier and store it in metadata like this:&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;fingerprint filter plugin을 사용하여 UUID나 hash를 생성하고, ruby filter를 사용하여 timestamp를 16진수로 encode된 문자열을 생성함으로써, logstash에서&amp;nbsp;이런 유형의 ID를 생성할 수 있다. hash할 수 있는&amp;nbsp;&lt;span style=&quot;color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; background-color: rgb(249, 242, 244);&quot;&gt;message&lt;/span&gt;&amp;nbsp;field를 가지고 있고 event의 timestamp가 이미&amp;nbsp;&lt;span style=&quot;color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; background-color: rgb(249, 242, 244);&quot;&gt;@timestamp&lt;/span&gt;&amp;nbsp;field로 parse되었다도 가정하면, ID 요소를 생성하여, 다음과 같이 metadata에 저장할 수 있다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;fingerprint &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  source &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;message&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  target &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;[@metadata][fingerprint]&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  method &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;MD5&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  key &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
ruby &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  code &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;event.set('@metadata[tsprefix]', event.get('@timestamp').to_i.to_s(16))&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;These two fields can then be used to generate a document id in the Elasticsearch output plugin:&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그런 다음, Elasticsearch의 output plugin에서 이들 2개의 field를 사용하여 document id를 생성할 수 있다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;elasticsearch &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  document_id &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;%{[@metadata][tsprefix]}%{[@metadata][fingerprint]}&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This will result in a document id that is hex encoded and 40 characters in length, e.g.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;4dad050215ca59aa1e3a26a222a9bbcaced23039&lt;/code&gt;. A full configuration example can be found in&amp;nbsp;&lt;a href=&quot;https://gist.github.com/cdahlqvist/8ff8fb8e56c43414396edf60e7944144&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;this gist&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이렇게 하면, 16진수로 encode된 길이가 40인 document id(예:&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;4dad050215ca59aa1e3a26a222a9bbcaced23039&lt;/span&gt;)를 얻을 수 있다. 전체 설정 예제는&amp;nbsp;&lt;a href=&quot;https://gist.github.com/cdahlqvist/8ff8fb8e56c43414396edf60e7944144&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;this gist&lt;/a&gt;&amp;nbsp;에서 볼 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Indexing performance implications&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The impact of using different types of identifiers will depend a lot on your data, hardware, and use-case. While we can give some general guidelines, it is important&amp;nbsp;to run benchmarks to determine exactly how this affects your use-case.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;서로 다른 유형의 ID를 사용하면, data, HW 그리고 사용 사례에 따라 많은 영향을 받는다. 몇 가지 일반적인 가이드라인을 제시할 수 있지만, 테스트를 통해 이것이 어떤 영향을 끼치는지 정확히 파악하는 것이 중요하다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;For optimal indexing throughput, using identifiers autogenerated by Elasticsearch is always going to be the most efficient option. As update checks are not required, indexing performance does not change much as indices and shards grow in size. It it therefore recommended to use this whenever possible.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;index 처리량을 최적화하려면, Elasticsearch가 자동 생성하는 ID를 사용하는 것이 가장 효율적인 선택이 될 것이다. update 검사가 불필요하므로, index와 shard가 커지더라도 index 성능은 크게 변화가 없다. 따라서, 가능한 한 이것을 사용하는 것이 좋다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The update checks resulting from using an external ID will require additional disk access. The impact this will have&amp;nbsp;depend on how efficiently the required data can be cached by the operating system, how fast the storage is and and how well it can handle random reads. The indexing speed also often goes down as indices and shards grow and more and more segments need to be checked.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;외부 ID를 사용하여 update 검사를 하려면 추가적인 disk access가 필요하다. 이로 인한 영향은 필요한 data가 얼마나 효율적으로 OS에 의해&amp;nbsp;cache되느냐, storage의 속도, random 읽기를 얼머너 절 처리하느냐에 따라 다르다. 또한 index와 shard가 증가할수록 index 속도는 떨어지는 경향이 있으며, 더 많은 segment를 확인해야 한다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Use of the rollover API&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Traditional time-based indices rely on each index covering a specific set time period. This means that index and shard sizes can end up varying a lot if data volumes fluctuate over time. Uneven shard sizes are not desirable and can lead to performance problems.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;전통적인 시간 기반 index는 특정 설정 기간을 다루는 각각의 index에 의존한다. 즉, data의 양이 시간에 다라 다를 경우, index와 shard 크기는 다양해 질 수 있다. shard 크기가 일정하지 않은 것은 바람직하지 않으며 성능 문제가 발생할 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-rollover-index.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;rollover index API&lt;/a&gt;&amp;nbsp;was introduced to provide a flexible way to manage time-based indices based on multiple criteria, not just time. It makes it possible to roll over to a new index once the existing one reaches a specific size, document count and/or age, resulting in much more predictable shard and index sizes.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-rollover-index.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;rollover index API&lt;/a&gt;&amp;nbsp;는 시간 뿐만 아니라 다양한 기준에 따라 시산 기반 index를 다루는 다양한 방법을 제공하기 위해 도입되었다. 기존의 index가 특정 크기, document 수 또는 기간에 도달하면, 새로운 index로 roll over할 수 있어, 훨씬 더 예측 가능한 shard와 index 크기가 될 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This however breaks the link between the event timestamp and the index it belongs to. When indices were based strictly on time, an event would always go to the same index no matter how late it arrived. It is this principle that makes it possible to prevent duplicates using external identifiers. When using the rollover API it is therefore no longer possible to completely prevent duplicates, even though the probability is reduced. It is possible that two duplicate events arrive on either side of a rollover and therefore end up in different indices even though they have the same timestamp, which will not result in an update.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그러나 이렇게 하면, event timestamp와 그것이 포함된 index간의 link가 끊어진다. index가 엄격하게 시간에 기반한 경우, event는 아무리 늦게 도착하더라도 항상 동일한 index로 간다. 외부 ID를 사용하여 중복을 방지하는 것이 원칙이다. 따라서, rollover API를 사용하는 경우, 가능성은 줄어들겠지만, 중복을 완전히 방지하는 것은 더 이상 불가능하다. 2개의 중복 event가 rollover의 양쪽에 도착하면, 그들이 동일한 timestamp를 가지고 있지만 다른 index이므로, update되지 않을 것이다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;It is therefore not recommended to use the rollover API if duplicate prevention is a strict requirement.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;따라서, 중복 방지 요구가 있는 경우, rollover API를 사용하지 않는 것이 좋다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Adapting to unpredictable traffic volumes&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Even if the rollover API cannot be used, there are still ways to adapt and adjust shard size if traffic volumes fluctuate and result in time-based indices that are too small or large.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;rollover API를 사용할 수 없는 경우에도, traffic 양이나 시간 기반 index가 너쿠 크거나 작은 경우 shard 크기를 조정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;If shards have ended up too large due to, e.g. a surge in traffic, it is possible to use the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-split-index.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;split index API&lt;/a&gt;&amp;nbsp;to split the index into a larger number of shards. This API requires a setting to be applied at index creation, so this needs to be added through an index template.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;예를 들어, traffic이 급증하여 shard가 너무 커진 경우,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-split-index.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;split index API&lt;/a&gt;&amp;nbsp;를 사용하여 더 많은 수의 shard로 index를 분할할 수 있다. 이 API는 index 생성시에 적용해야 하므로 설정이 필요하다. 따라서, 이것은 index template을 통해 추가해야 한다.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;If traffic volumes on the other hand have been too low, resulting in unusually small shards, the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-shrink-index.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;shrink index API&lt;/a&gt;&amp;nbsp;can be used to reduce the number of shards in the index.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;반면에 traffic 양이 너무 작아 비정상적으로 작은 shard가 나타나면,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.4/indices-shrink-index.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;shrink index API&lt;/a&gt;&amp;nbsp;를 통해 index의 shard 수를 줄일 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Conclusions&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As you have seen in this blog post, it is possible to prevent duplicates in Elasticsearch by specifying a document identifier externally prior to indexing data into Elasticsearch. The type and structure of the identifier can have a significant impact on indexing performance. This will however vary from use case to use case so it is recommended to benchmark to identify what is optimal for you and your particular scenario.&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물에서 보았듯이 data를 Elasticsearch에 index하기 전에 외부에서 document ID를 지정하여 Elasticsearch에서 중복을 방지할 수 있다. ID의 유형과 구조는 index 성능에 막대한 영향을 끼칠 수 있다. 그러나, 이는 사용사례에 따라 다르므로, 최적화된 ID를 테스트해 보는 것이 좋다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/efficient-duplicate-prevention-for-event-based-data-in-elasticsearch&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Efficient Duplicate Prevention for Event-Based Data in Elasticsearch&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>hash</category>
      <category>MD5</category>
      <category>Rollover</category>
      <category>SHA1</category>
      <category>sha256</category>
      <category>split</category>
      <category>uuid</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/648</guid>
      <comments>https://drscg.tistory.com/648#entry648comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:35:08 +0900</pubDate>
    </item>
    <item>
      <title>2018.08.21 - 번역 - Made To Measure: How to Use the Ranking Evaluation API in Elasticsearch ...</title>
      <link>https://drscg.tistory.com/647</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-rank-eval.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Ranking Evaluation API&lt;/a&gt;&amp;nbsp;that's been added to Elasticsearch is a new, experimental REST API that lets you quickly evaluate the quality of search results for a typical query set. This can be useful either while developing new search queries, incremental improvements of the query templates of an an existing system, or as a basic monitoring tool to detect changes in the search quality of a system in production.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch에 새로 추가된&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-rank-eval.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Ranking Evaluation API&lt;/a&gt;는&amp;nbsp;일반적인 query set에 대한 품질을 빠르게 평가할 수 있는 실험적인 REST API이다. 이것은 새로운 search query 개발, 기존 시스템의 query template의 증분 개선, 제품에서 시스템의 search 품질의 변화를 감지할 수 있는 기본적인 모니터링 tool로 유용하다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;A recent&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/test-driven-relevance-tuning-of-elasticsearch-using-the-ranking-evaluation-api&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;blog post about relevance tuning&lt;/a&gt;&amp;nbsp;already gave some initial motivation for why Ranking Evaluation is useful and gave a first glimpse at the new API. This post will show you how to use the new Ranking Evaluation API in Elasticsearch to measure search performance on real-life data and will show some common usage examples. The goal is to give you some hands-on experience using the API to initially develop a simple search query and measure its ranking quality. Then you’ll gradually improve it, learning about some of the details of the new API along the way.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이미 최근의&amp;nbsp;&lt;a href=&quot;http://drscg.tistory.com/646&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;relevance tuning에 대한 게시물&lt;/a&gt;에서 Ranking Evaluation이 유용한 이유에 대한 몇 가지 기초적인 동기를 부여했고, 새로운 API를 처음 보았다. 이 게시물에서 Elasticsearch의 새로운 Ranking Evaluation API를 사용하여 실제 data에서 search 성능을 측정하는 방법을 알아보고 몇 가지 일반적인 사용 예를 살펴보자. 처음에 간단한 search query를 개발하고, 그것의 ranking 품질을 측정하여 API를 사용하는 경험을 갖는 것이 목표이다. 그 다음에 새로운 API의 세부 사항에 대해 단계적으로 배우면서, 점차적으로 그것을 개선해 나갈 것이다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Setting Up the Demo Project&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Before we start diving into the API itself, let us take a quick look at a demo project that will help you setting up the dataset we are going to play with. We will use a small subset of documents from the English Wikipedia that Wikimedia provides publicly for&amp;nbsp;&lt;a href=&quot;https://dumps.wikimedia.org/other/cirrussearch/&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;download&lt;/a&gt;. If you are interested in how to index&amp;nbsp;data from Wikipedia in general, take a look at this&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/loading-wikipedia&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Loading Wikipedia's Search Index for Testing&lt;/a&gt;&amp;nbsp;blog post. For now, we keep things simple. I have already prepared the scripts that will create the index you are going to use. Let’s start by cloning the project itself:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;API 자체에 대해 알아보기 전에, 테스트할 data 집합을 설정하는데 도움이 될 demo project을 간략히 살펴보자. 우리는 Wikipedia가&amp;nbsp;&lt;a href=&quot;https://dumps.wikimedia.org/other/cirrussearch/&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;download&lt;/a&gt;를 위해 공개적으로 제공하는 영문 Wikipedia의 작은 일부 document를 사용할 것이다. Wikipedia로 부터 data를 index하는 방법에 관심이 있다면,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/loading-wikipedia&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;테스트를 위한 Wikipedia의 Search Index Loading&lt;/a&gt;이라는 게시물을 살펴보자. 지금은 간단하게 하자. 이미 사용할 index를 생성할 script를 준비해 뒀다. project 자체를 clone하여 시작하자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;git clone https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(136, 0, 0);&quot;&gt;//github.com/cbuescher/rankEvalDemo.git&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Inside the main folder you can find a directory called&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;bulkdata&lt;/code&gt;&amp;nbsp;which contains the documents that we are going to index. In order to index this data,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/_installation.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;start a local instance of Elasticsearch 6.3&lt;/a&gt;&amp;nbsp;now.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp;For other versions, please check if there is a corresponding branch in the demo project. API syntax might change, since this API is still experimental at the time of this writing, so you need to adapt the following examples if necessary.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;main folder 안에, index할 document를 포함하고 있는&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;bulkdata&lt;/span&gt;&amp;nbsp;라는 directory가 있다. 이 data를 index하기 위해,&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/_installation.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;local에서 Elasticsearch를 시작하자&lt;/a&gt;. 다른 버전을 사용하려면, demo project에 해당 branch가 있는지 확인하자. 이 API는 이 글을 쓰고 있는 시점에 여전히 실험 중이므로, API 문법은 변경될 수 있으니, 필요하다면, 다음 예제를 수정해야 한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Next, we are going to create an index named &quot;enwiki_rank&quot; that contains the demo documents. Assuming Elasticsearch is reachable at the default of&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;localhost:9200&lt;/code&gt;&amp;nbsp;(otherwise you’ll need to adapt the script slightly), run the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;./setup.sh&lt;/code&gt;&amp;nbsp;script, which will create a new index called “enwiki_rank” and then index the above mentioned bulk files, which should usually take just a few seconds.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;다음으로, demo document를 포함하고 있는 &quot;enwiki_rank&quot; 라는 index를 생성하자. Elasticsearch가 기본값인&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;localhost:9200&lt;/span&gt;&amp;nbsp;이라고 가정(그렇지 않으면, script를 약간 수정해야 한다)하면,&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;./setup.sh&lt;/span&gt;&amp;nbsp;script를 실행하여, “enwiki_rank”라는 새로운 index를 생성하고, 위에서 언급한 bulk file을 index하자. 일반적으로 몇 초 정도 소요된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let’s take a quick look at the data by using the Kibana Console:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Kibana Console을 이용하여, data를 잠깐 살펴보자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_count&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Response:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;response는 다음과 같다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;count&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1882&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;    
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;So we have about 1900 documents in the index to play with. A quick inspection of the mapping shows that there is quite a bit of information available for each Wikipedia document:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;index에는 약 1,900개의 document가 있다. mapping을 빠르게 확인해 보면, 각 Wikipedia document에서 활용할 수 있는 상당히 많다는 것을 알 수 있다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_mapping&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Besides the text content field itself (aptly called “text”), we find fields like “title”, “opening_text” and “category” in various analysis variants, as well as several additional metadata fields like incoming and outgoing links, redirects or popularity measures. We don’t need to go through all of them now, instead take a quick look at one example document (the page about&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/John_F._Kennedy&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;John F. Kennedy&lt;/a&gt;) to get an idea about a typical document:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;text content field외에도, 다양한 분석 변수에서 “title”, “opening_text”, “category” 뿐만 아니라 들어오고 나가는 links, redirections, popularity measures 같은 여러가지 추가 metadata field를 볼 수 있다. 지금 그들 모두를 검토할 필요는 없고, 대신 일반적인 document에 대한 idea를 얻기 위해, 하나의 예제 document(&lt;a href=&quot;https://en.wikipedia.org/wiki/John_F._Kennedy&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;John F. Kennedy&lt;/a&gt;에 대한 page)만 빠르게 살펴보자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5119376&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The returned document is huge, but at least take a look at some of the content fields like “title”, “text”, “opening_text” and “redirect” (which lists titles of pages redirecting to this one).&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;반환되는 document는 거대하지만, 최소한 “title”, “text”, “opening_text”, “redirect” 같은 일부 content field를 살펴보자.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Creating a Simple Query&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let’s start some searching now. Imagine your task is to develop some general purpose search frontend for this kind of data. Currently, you have little idea of how the documents are structured and which kind of queries to translate your users input to. You start your journey by imagining a typical user who wants to find information about president Kennedy, but unfortunately types “JFK” into the search box. You now have to make a choice how your search system translates this into an Elasticsearch query. Since we don’t know any better yet, let’s start simple by querying the “all” field (the catch-all copy-to field in the Wikipedia mappings.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp;this is NOT the Elasticsearch “_all” field, which is&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking_60_mappings_changes.html#_the_literal__all_literal_meta_field_is_now_disabled_by_default&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;disabled by default&lt;/a&gt;&amp;nbsp;in the mappings as of version Elasticsearch 6.0). Because documents are very large, and at this point we only need their titles, let us use source filtering to select only the title field:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이제 몇 가지 search를 시작해 보자. 여러분의 일이 이런 종류의 data에서 어떤 일반적인 목적의 frontend search를 개발하는 것이라 가정해 보자. 현재, 여러분은 document가 어떻게 구성되어 있는지, 사용자의 입력을 처리할 query에 대해 거의 알지 못한다. Kennedy 대통령에 대한 정보를 찾으려 하지만, 불행하게도, search box에 &quot;JFK&quot; 라고 입력하는 일반적인 사용자를 가정하고 시작하는 것이다. 이제 여러분은 search system이 이것을 Elasticsearch query로 바꾸는 방법을 선택해야 한다. 아직 잘 모르기 때문에, 간단하게 &quot;all&quot; field(Wikipedia mapping에서 catch-all copy-to field,&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp;이 field는&amp;nbsp;Elasticsearch의 &quot;_all&quot; field가 아니며, 이 field는 Elasticsearch 6.0 을 기준으로 mapping에서&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking_60_mappings_changes.html#_the_literal__all_literal_meta_field_is_now_disabled_by_default&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;기본적으로 비활성화isabled by default&lt;/a&gt;기되어 있다)에 대해 query하는 것으로 시작하자. document가 매우 크고 그 title만 필요하기 때문에, title filed만 선택하도록 source filtering을 사용하자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;filter_path&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;hits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;hits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_source&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;title
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;match&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;all&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The response might be a bit disappointing. It contains many documents about the JFK airport and related locations, a football club, a Boston train station, but only the &quot;JFK (disambiguation)&quot; page and the page called &quot;Reactions to the assassination of John F. Kennedy&quot; are somehow related to Kennedy, the president. Maybe we can try to be more specific by searching on the “title”, “opening_text” and a fuzzy version of the redirect page title called “redirect.title.near_match”:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;response는 다소 실망스러울 수 있다. JFK 공항, 관련된 장소, 축구정, Boston 기차역 등에 대한 많은 document를 포함하고 있지만, &quot;JFK (disambiguation)&quot; page와 &quot;Reactions to the assassination of John F. Kennedy&quot; 이라는 page만이 Kennedy 대통령과 어느 정도 관련이 있다. 아마도 “title”, “opening_text”과 “redirect.title.near_match” 라는 redirect page title의 fuzzy version을 search하여 더 구체화할 수 있을 것이다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;filter_path&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;hits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;hits&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_source&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;title
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;best_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;opening_text&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;redirect.title.near_match&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The result already looks more promising:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;결과가 조금 더 나아졌다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK (disambiguation)&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK Medical Center (Edison, New Jersey)&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;AirTrain JFK&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;John F. Kennedy&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;John F. Kennedy International Airport&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;                
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK Express&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Sutphin Boulevard–Archer Avenue–JFK Airport (Archer Avenue Lines)&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK (soundtrack)&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Howard Beach–JFK Airport (IND Rockaway Line)&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Skaboy JFK&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;                
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}]&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In addition to the disambiguation page, we find the article about president John F. Kennedy and the soundtrack of the movie JFK, but the rest of the result still doesn’t look great.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;disambiguation page외에, John F. Kennedy 대동령과 영화 JFK의 soundtrack에 대한 기사가 있자먼 여전히 결과의 나머지는 그리 좋지 않다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;We could continue like this: looking at some data, improving the query bit by bit and checking the results, until we are satisfied. But there are many disadvantages to this. First, you will need to look through the list of results every time you change anything in your query and make a judgement call whether the results are better or worse than the previous ones. This is more or less a gut feeling. While it is sometimes clear which documents should be returned on top, it is much harder to judge the “somewhat okay” and the “really bad” cases in a consistent way over time. And then there is your colleague or boss that in many cases will have a slightly different opinion on which search results should be leading the list, so once they start tuning the query, everything moves into a different direction. A structured way of evaluating your search ranking is clearly needed.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;디음과 같이 계속 할 수 있다. 우리가 만족할 때가지 약간의 data를 보고, query를 조금씩 개선하고, 결과를 확인하는 것. 하지만 이 방법에는 다음과 같은 많은 단점이 있다. 먼저, query에서 어떤 것을 변경할 때 마다, 결과 목록을 검토하여, 결과가 이전보다 더 나아졌는지 나빠졌는지 판단해야 한다. 이것은 다소 직감적이다. 어떤 document를 상위로 return해야 할지 어떤 때는 명확하지만, 시간이 흐르면서 &quot;약간 괜찮네&quot;와 &quot;진짜 아니야&quot; 라는 사례를 일관되게 판단하는 것이 훨씬 더 어렵다. 그리고 , 어떤 search 결과가 목록의 위에 올라와야 하는지에 대해, 상사나 동료가 약간 다른 의견을 가지는 경우가 많으므로, query를 tuning하기 시작하면 모든 것이 어긋나게 된다. search 순위를 평가하는 체계적인 방법이 명확하게 필요하다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Good, Better, Best&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This is where the new Ranking Evaluation API comes into play. It provides a way of attaching a set of document ratings to each of the typical search cases relevant for your system. By doing so, it offers a repeatable way of calculating various&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;evaluation measures&lt;/a&gt;&amp;nbsp;(that are well known in information retrieval literature) on top of those ratings to guide you in your decisions on how to optimize your system.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;여기에서 새로운 Ranking Evaluation API가 적용된다. 시스템과 관련된 각각의 일반적인 search 사례에 document ratings의 집합을 붙이는 방법을 제공한다. 이렇게 함으로써, 시스템을 최적화하는 방법을 결정하는데 도움이 되도록 상위의 해당 ratings에 대한&amp;nbsp;다양한&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;평가 측정치&lt;/a&gt;를 계산하는 반복가능한 방법을 제공한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;To make this more concrete, let us take a look at how such document ratings might look like. The Wikimedia foundations&amp;nbsp;&lt;a href=&quot;https://www.mediawiki.org/wiki/Wikimedia_Discovery&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discovery department&lt;/a&gt;&amp;nbsp;has been working on improving their site search for a long time, and they struggled with the same kind of problems as the ones described above. This is why they launched their own service&amp;nbsp;&lt;a href=&quot;https://www.mediawiki.org/wiki/Discernatron&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discernatron&lt;/a&gt;&amp;nbsp;with the goal to collect human judgments of search result relevance by letting users rate the quality of results on a scale from 0 (irrelevant) to 3 (relevant). User with a Wikimedia account can login at&amp;nbsp;&lt;a href=&quot;https://discernatron.wmflabs.org/&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;https://discernatron.wmflabs.org&lt;/a&gt;&amp;nbsp;and check out the tool. It’s really worth a look and you might even be able to help improving the search quality of the largest knowledge base of our time by rating a few documents yourself. Just in case you don’t want to do that right now, here is what the user interface looks like:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이를 보다 구체적으로 설명하기 위해, 그러한 document ratings가&amp;nbsp;어떻게 보이는지 살펴보자. Wikimedia 재단의&amp;nbsp;&lt;a href=&quot;https://www.mediawiki.org/wiki/Wikimedia_Discovery&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discovery 부서&lt;/a&gt;는 오랫동안 site search를 개선하기 위해 노력해 왔으며, 위에서 언급한 것과 동일한 종료의 문제로 고생했다. 이러한 이유로, 사용자들이 결과의 품질을 0(관련없음)에서 3(관련있음)까지 평가하도록 하여, search 결과의 관련성에 대한 사람들의 판단을 수집하기 위하여, 그들은 자체 서비스인&amp;nbsp;&lt;a href=&quot;https://www.mediawiki.org/wiki/Discernatron&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discernatron&lt;/a&gt;를 시작했다. 사용자들은&amp;nbsp;&lt;a href=&quot;https://discernatron.wmflabs.org/&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;https://discernatron.wmflabs.org&lt;/a&gt;에서 Wikimedia 계정으로 로그인하여, tool을 확인할 수 있다. 그것은 진정 가치 있는 것이고, 스스로 몇 개의 document를 평가함으로써, 이 시대의 가장 거대한 지식 기반의 search 품질을 개선하는데 도움이 될 수 있다. 지금 바로 그렇게 하지 싶지 않은 경우, 아래의 사용자 interface를 참고하자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://www.elastic.co/assets/bltd204ebed3b8c149a/discernatron.png&quot; data-sys-asset-uid=&quot;bltd204ebed3b8c149a&quot; alt=&quot;discernatron.png&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; height: auto; max-width: 100%; display: block; margin: auto;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;a href=&quot;https://discernatron.wmflabs.org/scores/all?json=1&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;full dataset is available&lt;/a&gt;&amp;nbsp;for users with a Wikimedia account (also optionally in&amp;nbsp;&lt;a href=&quot;https://discernatron.wmflabs.org/scores/all?json=1&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;JSON format&lt;/a&gt;), currently containing more than 6000 ratings associated with about 150 user queries. The document ratings for the rest of this demo are all based on this data to save of the trouble of having to come up with our own relevance ratings.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://discernatron.wmflabs.org/scores/all?json=1&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;전체 data 집합&lt;/a&gt;(옵션으로&amp;nbsp;&lt;a href=&quot;https://discernatron.wmflabs.org/scores/all?json=1&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;JSON format&lt;/a&gt;도)은&amp;nbsp;Wikimedia 계정을 가진 사용자들이 활용할 수 있는데, 현재 150개의 사용자 query와 관련된 6,000개 이상의 ratings를&amp;nbsp;가지고 있다. 이 demo의 나머지 document ratings는&amp;nbsp;모두 이 data를 기반으로 하여, 자체 관련성 등급을 산출해야 하는 어려움을 덜어준다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Basic Request and Response&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;So let’s get back to our search for “JFK” that we started to build a query for. Luckily, there are already about 60 document ratings for this query in the Discernatron dataset. The demo project contains a slightly older,&amp;nbsp;&lt;a href=&quot;https://github.com/cbuescher/rankEvalDemo/blob/master/discernatron_ratings.tsv&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;reduced dataset&lt;/a&gt;&amp;nbsp;containing the document ratings. When you inspect that file, the first three columns contain the query, page title and average rating for the document in question. We can see that the ratings for the result “John F. Kennedy” is most relevant (score 3.0) while things like the JFK movie (score 2.25) or the airport (score 2.25) are rated lower and articles about the movie soundtrack (score 1.0) or the football team JFK Olimps (score 0.75) are judged as rather irrelevant with respect to the query. We can use this data to create out first request to the Ranking Evaluation API. Because the list of ratings is quite long, the full&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;ratings&lt;/code&gt;&amp;nbsp;array is abbreviated here, but you can find the&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_1.txt&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;full request&lt;/a&gt;&amp;nbsp;in the demo project.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;자, query를 작성하기 시작한 &quot;JFK&quot;에 대한 search로 돌아가 보자. 운좋게도, 이미 이 data 집합에는 이 query에 대한 약 60개의 document ratings가&amp;nbsp;있다. demo project에는 document ratings를&amp;nbsp;포함하고 있는 약간 더 오래된&amp;nbsp;&lt;a href=&quot;https://github.com/cbuescher/rankEvalDemo/blob/master/discernatron_ratings.tsv&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;축소된 data 집합&lt;/a&gt;을 포함하고 있다. 해당 file을 확인해 보면, 첫번째 3 column은 질문에 대한 document의 query, page title, 평균 ratings를&amp;nbsp;포함하고 있다. “John F. Kennedy” 결과에 대한 등급이 가장 관련(score 3.0)있고, 반면에 영화 JFK(score 2.25)나 공항(score 2.25)은 덜 관련 있고, 영화 soundtrack(score 1.0)이나 축구팀 JFK Olimps(score 0.75)에 대한 게시물은 query와 다소 무관한 것으로 나타난 것을 볼 수 있다. 등급 목록이 상당히 길기 때문에, 전체&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;ratings&lt;/span&gt;&amp;nbsp;배열은 여기에서 생략했지만, demo project에서&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_1.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;전체 request&lt;/a&gt;를 볼 수 있다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_rank_eval
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;requests&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;best_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;opening_text&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;redirect.title.near_match&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;summary_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;3054546&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;enwiki_rank&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;5119376&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;enwiki_rank&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_rating_threshold&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let’s examine this request part by part. The largest part of the request is an array called &quot;requests&quot;. It defines the set of different search cases that are part of the evaluation. We start simple by only evaluating the “JFK” search at the moment, but will extend that later. We give this use-case an&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;id&lt;/em&gt;&amp;nbsp;and specifying the&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;query&lt;/em&gt;&amp;nbsp;from above to be executed. The&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;summary_fields&lt;/code&gt;&amp;nbsp;parameter defines a filter on the document fields that we want to see in the response. For the sake of this demo it is sufficient to see the document title. The &quot;ratings&quot; section contains all the relevance judgements that we extracted from the Discernatron dataset by mapping the page title to out internal document id. Here e.g. the document with&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;&quot;_id&quot;: &quot;5119376&quot;&lt;/code&gt;&amp;nbsp;refers to the John F. Kennedy article and gets the highest score of 3.0.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 request를 부분별로 확인해 보자. request의 가장 큰 부분은 &quot;requests&quot; 배열이다. 이것은 평가의 일부분인 디양한 search 사례의 집합을 정의한다. 현재 &quot;JFK&quot; search만 평가하는 하는 것으로 단순하게 시작하지만 나중에 그것을 확장할 것이다. 이 사용사례에&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;id&lt;/em&gt;&amp;nbsp;를 부여하고 위에서 실행한&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;query&lt;/em&gt;&amp;nbsp;를 지정한다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;summary_fields&lt;/code&gt;&amp;nbsp;매개변수는 response에서 볼 수 있는 document의 field에 대한 filter를 정의한다. 이 demo를 위해서는 document의 title을 보는 것으로 충분하다. &quot;ratings&quot; section은 page title을 내부 document id에 mapping하여, data 집합에서 추출한 관련성 판단이 포함된다. 예를 들어, 여기에서&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;&quot;_id&quot;: &quot;5119376&quot;&lt;/span&gt;&amp;nbsp;document는 John F. Kennedy 게시물을 가리키며, 가장 높은 score 3.0 을 가진다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The following, smaller section defines the evaluation metric itself. We choose&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Precision&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Precision&lt;/a&gt;, or more specifically,&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Precision_at_K&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Precision at K&lt;/a&gt;, which is a metric that takes the first K returned search results and calculates the fraction of relevant documents. Since we use rating on a scale from zero to three, we also need to define from which ratings on this scale we consider as “relevant”. We choose a rating of 2 and above to be “relevant” by setting the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;relevant_rating_threshold&lt;/code&gt;&amp;nbsp;accordingly. For the sake of brevity, we also choose to evaluate the query only on the top 5 documents. This means that when those top 5 results contain three documents with score two or higher, the precision will be 3 / 5 = 0.6. You can check this now by running the&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_1.txt&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;full request&lt;/a&gt;&amp;nbsp;in the Kibana Console. This is the abbreviated response:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이어지는 더 작은 section은 평가 metric 자체를 정의한다. 우리는&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Precision&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Precision&lt;/a&gt;, 더 정확히 표현하면,&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Precision_at_K&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Precision at K&lt;/a&gt;&amp;nbsp;을 선택했는데, 이는 처음으로 K를 반환하는 search 결과를 가져와 관련된 document의 비율을 계산하는 metric이다. 0에서 3까지의 ratings를 사용하기 때문에, 이것에서 어느 ratings를 “관련있는” 것으로 간주할지를 정의해야 한다. 따라서, 위에서 &quot;관련있는&quot; 것이 되도록,&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;relevant_rating_threshold&lt;/span&gt;&amp;nbsp;를 설정하여, ratings 2를 선택한다. 또한 간략하도록, 상위 5개의 document에서만 query를 평가하도록 선택한다. 즉, 상위 5개의 document에 score 2 이상의 document가 3개가 포함되면, 정확도는 3 / 5 = 0.6 이 된다. 이제 Kibana Console에서&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_1.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;전체 request&lt;/a&gt;를 실행하여 확인할 수 있다. 다음은 요약된 response이다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;unknown_docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;enwiki_rank&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;26509772&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
       &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[…],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric_details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As we can see, apart from the total result, a precision score of 0.6, the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;details&lt;/code&gt;&amp;nbsp;section contains additional information about each evaluated search case, in this case only the “JFK_query”. The&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;metric_details&lt;/code&gt;&amp;nbsp;section shows how the score was calculated. As expected, we found 3 relevant documents out of 5 retrieved. But what about the other two documents? Either the document had a rating of less than 2, or some of the results returned by the query were not rated at all. It can be useful to present especially these unrated documents to the user and ask for a rating. The&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;unknown_docs&lt;/code&gt;&amp;nbsp;section contains those documents for exactly this purpose. In addition, the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;hits&lt;/code&gt;&amp;nbsp;section contains all the search hits returned for the particular query under evaluation. The difference between a usual search and &quot;hits&quot; is that each hit contain its&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;rating&lt;/code&gt;&amp;nbsp;(or&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;null&lt;/em&gt;&amp;nbsp;if there is none) and usually&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;_source&lt;/code&gt;is omitted. Document fields can be included (e.g. because we want to present them to a user when asking for a rating) by explicitly specifying them in the request's&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;summary_fields&lt;/code&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;위에서 보듯이, 전체 결과에서 0.6인 precision score를 제외하면,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;details&lt;/code&gt;&amp;nbsp;section에는 각각의 평가된 search 사례에 대한 추가적인 정보가 포함되어 있다. 이 경우에는 “JFK_query”만 있다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;metric_details&lt;/code&gt;&amp;nbsp;section은 score가 계산되는 방법을 보여준다. 예상대로 5건 중 3건의 관련된 document를 가져왔다. 그렇다면 다른 2건의 document는? document의 ratings가 2보다 적거나, query에 의해 반환된 결과가 전혀 평가되지 않았다. 특히 사용자에게 이런 등급 미지정 document를 제공하고 ratings를 요청하는 것은 유용하다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;unknown_docs&lt;/code&gt;&amp;nbsp;section에는 정확히 이런 목적을 위한 해당 document가 포함되어 있다. 또한,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;hits&lt;/code&gt;&amp;nbsp;section에는 평가중인 특정 query에 대해 반환된 모든 search 결과가 포함된다. 일반적인 search와 &quot;hits&quot;의 차이점은 각 hit는&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;rating&lt;/span&gt;&amp;nbsp;(없는 경우에는 null)이 포함되며, 일반적으로&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;_source&lt;/span&gt;&amp;nbsp;는 생략된다. document의 field는 request의&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;summary_fields&lt;/span&gt;&amp;nbsp;에 그것을 명시적으로 지정하여 포함(예를 들어, ratings를 요청할 때, 사용자에게 그것을 표시하려는 경우)할 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Improving Queries Incrementally&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Now that we know what the basic requests and responses look like, let us use this to improve our query some more. By looking at the title of the results, we can see that the three relevant documents we get back are “John F. Kennedy”, “JFK (disambiguation)&quot; and “John F. Kennedy International Airport”. Not too bad, but we might get even better. Poking around in the Wikipedia document definition, we find a field called&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;popularity_score&lt;/code&gt;, which seems to be higher for popular articles like “John F. Kennedy” than for niche articles like &quot;JFK Medical Center (Edison, New Jersey)&quot;. Let us see if we can use this to boost search results with a&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/query-dsl-function-score-query.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;function score query&lt;/a&gt;&amp;nbsp;using&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_2.txt&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;this request&lt;/a&gt;:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이제, 기본적인 request와 response를 알았으니, query를 좀 더 개선하여 이를 사용해 보자. 결과의 title을 살펴보면, “John F. Kennedy”, “JFK (disambiguation)&quot;, “John F. Kennedy International Airport”의 3개의 관련된 document를 볼 수 있다. 나쁘지 않지만, 더 나아질 수 있다. Wikipedia document 정의를 살펴보면,&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;popularity_score&lt;/span&gt;&amp;nbsp;라는 field를 볼 수 있는데, 이는 &quot;JFK Medical Center (Edison, New Jersey)&quot; 같은 틈새 게시물보다 “John F. Kennedy” 같은 인기있는 게시물애 더 높은 것으로 보인다.&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_2.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;다음 request&lt;/a&gt;를 사용하여,이 field를 이용하여,&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_2.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;다음 request&lt;/a&gt;&amp;nbsp;처럼,&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/query-dsl-function-score-query.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;function score query&lt;/a&gt;&amp;nbsp;로 search 결과를 향상시킬 수 있는지 알아보자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_rank_eval
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;requests&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;function_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;best_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;opening_text&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;redirect.title.near_match&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;functions&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;field_value_factor&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;popularity_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;missing&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;boost_mode&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multiply&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;summary_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[…&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_rating_threshold&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;We now even get 4 out of 5 relevant documents in the result, which leads to a precision score of 0.8. Well done. But what if this is just improving results for this particular query. After all, out users are not just interested in the results for typing in “JFK” into the search box. Time to put some more typical searches in the mix.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;결과에는 5개의 관련된 document 중 4개를 표시되어, precision score가 0.8이 된다. 잘 됐다. 그러나, 이것이 이 특정 query의 결과만 향상시키는 것이라면? 결국, 사용자는 검색 창에 &quot;JFK&quot;를 입력한 경우에 대한&amp;nbsp;결과에만 관심을 가지는 것이 아니다. 좀 더 일반적인 search를 해야할 시간이다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Extending the Set of Evaluated Queries&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Looking at the user queries in first column of the&amp;nbsp;&lt;a href=&quot;https://github.com/cbuescher/rankEvalDemo/blob/master/discernatron_ratings.tsv&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;document ratings&lt;/a&gt;, we can discover more cases which we have ratings for. Typically you would try using the whole data if possible, but for now, let's just add two cases to the evaluation. The first search we’ll add (“the great beer flood”) relates to a curious historical incident called the&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/London_Beer_Flood&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;London beer flood&lt;/a&gt;, where in 1814, after a brewery accident, more than 1 million liters of beer were running into the streets. The second search case we’ll add is about “naval flags” and we’ll assume users are interested in things like&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Maritime_flag&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;maritime flags&lt;/a&gt;&amp;nbsp;or other kinds of&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Naval_ensign&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;naval ensigns&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://github.com/cbuescher/rankEvalDemo/blob/master/discernatron_ratings.tsv&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;document ratings&lt;/a&gt;의 첫번째 column에 있는 사용자 query를 살펴보면, ratings를 가진 더 많은 경우를 볼 수 있다. 일반적으로 가능한 한 전체 data를 사용하려 하겠지만, 평가에 2가지 경우만 추가해 보자. 추가할 첫번째 search는 1814년 맥주 공장 사고 후, 백만 리터 이상의 맥주가 거리로 흘러나온&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/London_Beer_Flood&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;London beer flood&lt;/a&gt;라는 기이한 역사적 사건과 관련이 있는 (“the great beer flood”) - 거대한 맥주 홍수 - 이다. 추가할 두번째 search는 “naval flags” 에 대한 것인데, 사용자들은&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Maritime_flag&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;maritime flags&lt;/a&gt;(선박의 깃발)이나 다른 종류의&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Naval_ensign&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;naval ensigns&lt;/a&gt;(해군 깃발)에 관심이 있다고 가정할 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;We want to use the same query as the one above, but we don’t want to repeat it three times. We can avoid this by using the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;templates&lt;/code&gt;&amp;nbsp;section, that allows sharing queries common to all search use cases and to parametrize them later. The query that we previously defined in the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;requests&lt;/code&gt;&amp;nbsp;section gets its own template id (“my_template”) and uses a placeholder (&quot;{{query_string}}&quot;) inside the query that is later replaced by the actual user query. If you ever used&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-template.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;search templates&lt;/a&gt;&amp;nbsp;before, this will look familiar. In the requests sections we can now refer to this template by its id using the template_id and providing the parameter replacements in the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;params&lt;/code&gt;&amp;nbsp;object:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;위에서와 동일한 query를 사용하려 하지만, 3번 반복하지는 않으려 한다. 모든 search 사례에 공통적인 query를 공유할 수 있고, 나중에 매개변수화 할 수 있는&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;templates&lt;/span&gt;&amp;nbsp;section을 사용하여,&amp;nbsp;이를 피할 수 있다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;requests&lt;/code&gt;&amp;nbsp;section에서 이전에 정의한 query는 자신의 template id(“my_template”)를 가져오고, 나중에 실제 사용자 query로 대체되는 query 내에 placeholder (&quot;{{query_string}}&quot;)를 사용한다. 이전에&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-template.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;search templates&lt;/a&gt;&amp;nbsp;을 사용해 본적이 있다면, 이것은 익숙할 것이다. 이제, requests section에서, template_id를 사용허여 그 id로 이 template을 참조할 수 있고,&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;params&lt;/code&gt;&amp;nbsp;object에서 매개변수 교체를 제공한다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;enwiki_rank&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_rank_eval
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;templates&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;my_template&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;template&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;function_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;{{query_string}}&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;best_fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title.near_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;opening_text.plain&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;redirect.title.near_match&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;functions&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;field_value_factor&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;popularity_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;missing&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;modifier&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
              &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;boost_mode&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multiply&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;requests&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;template_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;my_template&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;params&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query_string&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[…]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;the_great_beer_flood_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;template_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;my_template&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;params&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query_string&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;the great beer flood&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[…]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;naval_flags_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;template_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;my_template&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;params&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;query_string&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;naval flags&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;[…]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_rating_threshold&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/blog/made-to-measure-how-to-use-the-ranking-evaluation-api-in-elasticsearch#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When we run the&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_3.txt&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;full request&lt;/a&gt;, the result might be a bit surprising at first: the combined average &quot;quality_level&quot; is now only 0.26. While the “JFK” query still performs well (a precision of 0.8), the other two queries show a precision of 0, meaning they don’t have any relevant document in their results. This leads to an average precision of only 0.26. What seems to be wrong? If we look at the results in the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;details&lt;/code&gt;, we see that e.g. the “naval flags” query returns the “Union Jack” as first search hit, and the “great beer flood” query features things like “Great White Shark” or “Bob Dylan” among its search results. Maybe the influence of the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;popularity_score&lt;/code&gt;&amp;nbsp;field we added to the query to get better results with the “JFK” example is too high? Let’s just try it out by taking the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;function_score&lt;/code&gt;query&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_4.txt&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;out again&lt;/a&gt;. This already increases precision to 0.46. Still not great, but at least each search now contains some relevant results: while precision for the “JFK” query dropped a bit to 0.6, we now also get 0.6 on the “naval flags” query and at least 0.2 with the “beer flood” query:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_3.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;full request&lt;/a&gt;를 처음 실행하면, 처음에는 약간 놀랄 수 있다. 지금 조합된 평균 &quot;quality_level&quot;이 겨우 0,26이다. “JFK” query는 여전히 양호(precision 0.8)한데, 다른 2개의 query는 precision 0 이다. 이는 그 결과에 관련있는 document가 전혀 없다는 것을 의미한다. 이로 인해, 평균 precision이 겨우 0.26이 되었다. 무엇이 잘못되었을까?&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;details&lt;/span&gt;&amp;nbsp;에서 결과를 살펴보면, 예를 들어 “naval flags” query는 “Union Jack”을 첫번째 search hit로 반환하고, great beer flood” query는 search 결과 중 “Great White Shark” 이나 “Bob Dylan” 같은 결과를 제공함을 볼 수 있다. 혹시 “JFK” 예제에서 더 낳은 결과를 위해 query에 추가한&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;popularity_score&lt;/code&gt;&amp;nbsp;field의 영향이 너무 큰가?&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;function_score&lt;/code&gt;&amp;nbsp;query를&amp;nbsp;&lt;a href=&quot;https://raw.githubusercontent.com/cbuescher/rankEvalDemo/master/requests/request_4.txt&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;다시 해 보자&lt;/a&gt;. 이것은 precision을 0.46으로 증가시킨다. 아직 좋지는 않지만, 최소한 각 search에는 몇 가지 관련있는 결과를 포함하고 있다. “JFK” query의 precision이 0.6으로 약간 떨어졌지만, “naval flags” query에서는 0.6, “beer flood” query에서는 최소 0.2이다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.4666666666666666&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;JFK_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;naval_flags_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.6&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;the_great_beer_flood_query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[...]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Start Exploring&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In the end, finding a good query template usually means finding a compromise that works reasonably well across all search use cases in the test set. After all, a query template that returns some good results for most use cases is better than a query template that gets a perfect score for one particular use case but returns nothing useful for all the others.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;결국 좋은 query template을 찾는는 것은 일반적으로 테스트 집합의 많은 search 사례에서 합리적으로 잘 동작하는 절충안을 찾는 것이다. 결국, 대부분의 사례에 대해 좋은 결과를 반환하는 query template이 어떤 특정 사례에 대해 완벽한 score를 얻지만 다른 모든 것에는 아무 것도 반환하지 못하는 query template보다 더 낫다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;There are many aspects we haven’t touched yet, but that are worth exploring on your own. For example, we used the&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;precision&lt;/em&gt;&amp;nbsp;metric throughout this blog post because its relatively easy to explain and calculate. However, it doesn’t take the positions of the rated documents in the result set into account — a relevant result in the first position counts the as a relevant document in the last position of the top results. The&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Discounted_cumulative_gain&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discounted Cumulative Gain&lt;/a&gt;&amp;nbsp;(DCG) metric&amp;nbsp;is much better suited for these cases. You can try it out by simply exchanging the “metric” section in the examples above with:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;아직 우리가 다루지 못한 부분이 많이 있지만, 여러분 스스로 그것을 탐구해 볼만하다. 예를 들어, 이 게시물에서 설명과 계산이 비교적 쉽기 때문에,&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;precision&lt;/em&gt;&amp;nbsp;metric을 사용했다. 그러나, 결과 집합에서 연관된 document의 위치는 고려하지 않았다. 첫번째 위치에서 관련 결과는 상위 결과의 마지막 위치에서 관련 document로 계산된다.&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Discounted_cumulative_gain&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discounted Cumulative Gain&lt;/a&gt;&amp;nbsp;(DCG) metric은 이런 경우에 훨씬 더 적합니다. 위의 예에서 “metric” section을 다음과 같이 교환하면 된다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;dcg&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;normalize&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This will calculate the normalized variant of the metric on the top 5 results. Start by using it with just one search query first and observe how the evaluation score changes when document with a high rating are returned further up the result list.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이렇게 하면, 상위 5개의 결과에서 metric의 정규화된 variant가 계산된다. 먼저 하나의 search query만 사용하여 높은 ratings의 document가 결과 목록의 더 위로 반환될 때, 평가 score가 어떻게 변화하는지 살펴보자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Using the Ranking Evaluation API won’t magically make your search queries return only relevant results out of a sudden, but it will help you a lot in guiding your decisions while prototyping and maintaining a search system later on. No reasonably complex search application should be run in production without any kind of quality testing, be simple unit test, A/B tests or periodically running one of the metrics the Ranking Evaluation API offers. Coming up with relevance judgements for specific search cases might seem a bit of work first, but once you have your basic test set, you can iterate much faster and with more confidence on making changes, be it to your queries, analysis, or other parts of your system.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Ranking Evaluation API를 사용한다고 갑자기 search query가 관련있는 결과만 반환하지는 읺지만, 나중에 search 시스템을 prototyping하고 유지하는 동안 여러분의 의사 결정애 많은 도움이 될 것이다. 품질 테스트, 간단한 unit 테스트, A/B 테스트 또는 주기적으로 Ranking Evaluation API가 제공하는 metrics 중 하나를 실행없이는 제품에 합리적이고 복작한 search application도 없다. 특정 search 사례에 대한 관련성 판단을 내리는 것은 처음에는 약간의 작업이라 보이겠지만, 기본 테스트 집합을 가지게 되면, 훨씬 더 빠르고 신뢰할 수 있는 방식으로 시스템의 query, analysis, 다른 부분에 적용할 수 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/made-to-measure-how-to-use-the-ranking-evaluation-api-in-elasticsearch&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Made To Measure: How to Use the Ranking Evaluation API in Elasticsearch&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>details</category>
      <category>evaluation</category>
      <category>hits</category>
      <category>metric_details</category>
      <category>params</category>
      <category>Ranking</category>
      <category>rating</category>
      <category>ratings</category>
      <category>Relevance</category>
      <category>relevant_rating_threshold</category>
      <category>summary_fields</category>
      <category>template</category>
      <category>unknown_docs</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/647</guid>
      <comments>https://drscg.tistory.com/647#entry647comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:33:39 +0900</pubDate>
    </item>
    <item>
      <title>2018.08.15 - 번역 - Test-Driven Relevance Tuning of Elasticsearch using the Ranking Evaluation API ...</title>
      <link>https://drscg.tistory.com/646</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This blog post is written for engineers that are always looking for ways to improve the result sets of their search application built on Elasticsearch. The goal of this post is to raise awareness of why you should care about relevance, what components are involved and how you can control them.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물은 Elasticsearch에 구축된 search application의 결과 집합을 개선하는 방법을 모색하고 있는 엔지니어를 위해 작성되었다. 이 게시물의 목표는 relevance에 주의해야 하는 이유, 그것에 포함된 구성요소, 그것을 제어하는 방법에 대한 관심을 높이는데 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Tuning relevance&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;can be&lt;/em&gt;&amp;nbsp;hard. But by the end of this blogpost you’ll have a better understanding of how you can tune the relevance of your search engine and learn that it's actually&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;not so hard&lt;/em&gt;&amp;nbsp;with the right tools.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;relevance를 tuning하는 것은 어려울 수 있다. 그러나 이 게시물의 마지막 부분에 이르면, search engine의 relevance를 tuning하는 방법을 더 잘 이해할 것이고, 올바른 tool을 사용하면 실제로 그렇게 어렵지 않다는 것을 배우게 될 것이다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Let's start with a bit of theory&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let's consider a search application to use a combination of data (index), data models (mapping and analyzers) and query templates (Query DSL). Using the search system means entering queries (typically a set of parameters, such as query string, filters, etc.) and receiving results. The consumer of the results can be a person that accesses the search engine via a web-based GUI or an automated system (I will mainly talk about users during this blogpost, but it’s also applicable for bots). Those results may or may not match the users expectations.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;data(index), model(mapping과 analyzer), query template(query DSL)의 조합을 사용하는 search application을 생각해 보자. search system을 사용한다는 것은 query(일반적으로 query string, filter 등의 매개변수 집합)를 입력하고, 결과를 받는다는 것이다. 결과를 사용하는 사람은 web 기반 GUI나 자동화된 system을 통해 search engine에 access하는 사람이 될 수 있다. (이 게시물에서는 주로 사용자에 대해 이야기하겠지만, bots에 대해서도 적용될 수 있다.) 이들 결과는 사용자의 기대와 다를 수도 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The job of a developer that builds a search application is to make sure that their users will find what they are looking for. Optimizing the search engine for this is what we call relevance tuning.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;search application을 구축하는 개발자의 job은 사용자가 찾고자 하는 것을 사용자가 찾을 수 있도록 하는 것이다. 이를 위해 search engine을 최적화하는 것을 relevance tuning이라 한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Ultimately, relevance is typically very subjective and often depends the individual evaluating the results of the query. Whether a user will be happy with the results or not — which is ultimately the only relevant metric for relevance — is hard to predict.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;궁극적으로, relevance는 대개 매우 주관적이며, 종종 query 결과에 대한 개인적인 평가에 따라 다르다. 사용자가 결과에 만족할지 여부(이는 궁극적으로 relevance에 대한 relevant metric일 뿐이다)는 예측하기 어렵다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Every dataset is unique, as are your users. This means that ultimately nobody can tell you exactly which configuration to choose. Even if there was a database full of use cases that included feedback about what worked well, your case will always be specific and unique.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;모든 data 집합은 사용자와 마찬가지로 고유하다. 이것은 궁극적으로 어떤 구성을 선택해야 할지 아무도 정확히 알 수 없다는 것을 의미한다. 잘 동작하는 지에 대한 feedback을 포함하고 있는 사용 사례로 가득찬 database가 있더라고, 여러분의 사례는 항상 독특하고 고유할 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Very often, customers ask which query they should use. Of course, we can give guidelines that serve as a starting point. For example, it is best practice to use a multi-match query in an eCommerce use case. This usually works well until some edge cases are discovered that should yield better results. And when it comes to this kind of tuning it is usually better to follow a test-driven approach as explained in the following:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;매우 자주, 고객등은 그들이 어떤 query를 사용해야 할지를 질문한다. 물론, 출발점 역활을 하는 가이드라인을 제공할 수 있다. 예를 들어, eCommerce 사례에서는 multi-match query를 사용하는 것이 가장 좋다. 보통 이것은 더 나은 결과를 산출해야 하는 어떤 상황이 발생할 때까지는 잘 동작한다. 그리고 이런 종류의 tuning에 대해서는, 다음과 같은 test-driven 방식을 따르는 것이 더 낫다.&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;Let's consider relevance tuning to be an optimization problem.&lt;br /&gt;relevance tuning을 최적화 문제로 고려하자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;There are lots of moving parts for a data model and a query template.&lt;br /&gt;data model과 query template에는 많은 유동적인 부분이 있다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;Finding the perfect combination of all those variables is the ultimate goal.&lt;br /&gt;모든 변수의 완변한 조합을 찾는 것이 최종 목표이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;There are dozens of ways to setup a query template and hundreds of ways to configure your data model including all options for setting up analyzers. Sometimes relevance isn't your only concern. Query speed and required disk space are usually also important factors. But let's consider them as small constraints in our quest to optimize relevance.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;query template을 설정하는 수십가지 방법과 analyzer 설정에 대한 모든 option을 포함하여 data model을 구성하는 수백가지 방법이 있다. 때로는 relevance가 유일한 관심사가 아니다. query 속도와 disk 공간도 일반적으로 중요한 요소이다. 그러나, relevance를 최적화하기 위한 우리의 목표에서 이들을 작은 제약으로 생각하자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;To be successful you need a tool that enables you to measure and tune the relevance for your users and your search engine. Such a tool became available with version 6.2 of Elasticsearch, namely the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-rank-eval.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Ranking Evaluation API&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이를 위해, 사용자와 search engine의 relevance를 측정하고 tuning을 할 수 있는 tool이 필요하다. 그런 tool을 Elasticsearch 6.2에서&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-rank-eval.html&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Ranking Evaluation API&lt;/a&gt;라는 이름으로 이용할 수 있게 되었다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Using the Ranking Evaluation API&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;With the Ranking Evaluation API, it is possible to measure the search quality of your search engine. To use this API, you’ll need an existing index, a set of queries, and a list of relevance judgements for documents returned by those queries. Relevance judgements are labels that indicate whether a document matched a query well or not.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Ranking Evaluation API를 사용하면, search engine의 search 품질을 측정할 수 있다. 이 API를 사용하기 위해서는 기존의 index, query 집합,&amp;nbsp;해당 query에 의해 반환되는 document에 대해 relevance를 판단할 목록이 필요하다. relevance 판단은 document가 query와 잘 일치하는지 여부를 나타내는 label이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Usually you know the queries that you use. Either they can be extracted from the application code or from the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/index-modules-slowlog.html#search-slow-log&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;slowlogs&lt;/a&gt;&amp;nbsp;(Turning the slowlog setting to 0 seconds will log all queries.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Warning:&lt;/span&gt;&amp;nbsp;Don’t let this setting run&amp;nbsp;in production for a long time, as it will impact performance.). If you use&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-template.html#search-template&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;search templates&lt;/a&gt;, it’s very straightforward to extract the queries in JSON format.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;일반적으로, 여러분은 여러분이 사용하는 query를 알고 있다. application code 또는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/index-modules-slowlog.html#search-slow-log&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;slowlogs&lt;/a&gt;&amp;nbsp;(slowlog를 0초로 설정하는 것은 모든 query를 log로 남기겠다는 의미이다. 경고: 이 설정은 성능에 영향을 미치므로, 제품에서 오랫동안 실행하지 않도록 하자)에서 추출할 수 있다.&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-template.html#search-template&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;search templates&lt;/a&gt;을 사용한다면, query를 JSON format으로 추출하는 것은 매우 간단하다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The only tedious part is to gather the relevance judgements. You’ll need to collect for each query one or more documents that should match that query or not. In many cases this will be manual work. The exact format of the relevance judgements is explained in the&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-rank-eval.html#_ranking_evaluation_request_structure&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;ranking evaluation documentation&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;유일하게 지루한 부분은 relevance 판단을 수집하는 것이다. 각 query에 대해 일치하거나 일치하지 않는 하나 이상의 document를 수집해야 한다. 많은 경우에, 이것은 수작업이다. relevance 판단의 정확한 형식은&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-rank-eval.html#_ranking_evaluation_request_structure&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;ranking evaluation documentation&lt;/a&gt;에 설명되어 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Search quality can also be measured using proven information retrieval metrics like precision, mean reciprocal rank or&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Discounted_cumulative_gain&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;discounted cumulative gain (DCG)&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;search 품질은 precision, mean reciprocal rank,&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Discounted_cumulative_gain&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;discounted cumulative gain (DCG)&lt;/a&gt;&amp;nbsp;같은 증명된 정보 검색 통계를 사용하여 측정할 수도 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The queries you pick should be a somewhat representative sample of typical queries that you will serve in production. The easiest way to pick the sample if you already have a search system in place would be to take the top 100 queries from your website analytics logs.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;여러분이 선택해야 하는 query는 제품에서 서비스할 전형적인 query의 대표적인 예제라야 한다. search system을 이미 가지고 있다면, 예제를 선택하는 가장 쉬운 방법은 여러분의 website 분석 로그에서 상위 100개의 query를 가져오는 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let’s assume you’re ready to go now: You have an index, query samples and relevance judgements. Here’s a little recipe how you can use the Ranking Evaluation API for test driven relevance tuning:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이제 준비가 되었다고 가정라자. index, query 예제, relevance 판단을 가지고 있다. 다음은 test driven relevance tuning을 위해 Ranking Evaluation API를 사용하는 방법에 대한 약간의 recipe이다.&lt;/p&gt;

&lt;ol style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 21px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; background-color: rgb(247, 247, 247);&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;Talk to QA, and find out which problematic queries&amp;nbsp;need to be tuned.&lt;br /&gt;QA와 이야기하여, tuning해야 할 문제가 있는 query가 어떤 것인지 알아보자.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;Run the queries that need to be tuned. For this example, we have 1 document in our movies index:&lt;br /&gt;tuning해야 할 query를 실행하자. 이 예제를 위하여, movies index에는 1개의 document가 있다.&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 807.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST movies&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;doc
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Star Wars&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;/pre&gt;Let’s check if a query for “Star Trek” yields results:&lt;br /&gt;“Star Trek”에 대한 query 결과가 나오는지 확인하자.&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 807.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET movies&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_rank_eval
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;requests&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;star_trek&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;match_phrase&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Star Trek&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;movies&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_rating_threshold&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;p&gt;Run an initial test to measure the current state of your system:&lt;br /&gt;시스템의 현재 상태를 측정하기 위해 초기 테스트를 실행하자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 807.5px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;star_trek&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;unknown_docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric_details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;failures&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;/pre&gt;
	
	
	
	Ok the quality_level is&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;0&lt;/code&gt;. This is not what we want. The quality level can range from 0 to 1. We should aim for something close to&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;1&lt;/code&gt;. So maybe we have to use a different query.&lt;br /&gt;좋다. quality_level이&amp;nbsp;&lt;span style=&quot;color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; background-color: rgb(249, 242, 244);&quot;&gt;0&lt;/span&gt;&amp;nbsp;이다.&amp;nbsp;이것은 우리가 원하던 것이 아니다. quality level의 범위는 0에서 1까지이다.&amp;nbsp;&lt;span style=&quot;color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; background-color: rgb(249, 242, 244);&quot;&gt;1&lt;/span&gt;&amp;nbsp;에 가까운 값을 목표로 해야 한다. 따라서, 아마도 다른 query를 사용해야 한다.&lt;p&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;p&gt;Change a variable. For this example, let's change the query type.&lt;br /&gt;변수를 바꾸자. 예를 들자면, query type을 변경하자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 807.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET movies&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_rank_eval
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;requests&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;star_trek&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Star Trek&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;ratings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;movies&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;k&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_rating_threshold&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;p&gt;Run the test again.&lt;br /&gt;테스트를 다시 실행하자.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 807.5px;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;star_trek&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;quality_level&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;unknown_docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hit&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;movies&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;doc&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.2876821&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;rating&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;metric_details&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;precision&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;relevant_docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs_retrieved&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;failures&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;A lot better. Now we could find something. This is just an example to illustrate the workflow. (&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp;A more detailed walkthrough of this process will be contained in a follow up blogpost to this topic.)&lt;br /&gt;훨씬 나아졌다. 이제 무언가를 찾을 수 있다. 이것은 작업 흐름을 설명하는 예시일 뿐이다. (&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp;이 process의 더 자세한 내용은 이 게시물의&amp;nbsp;&lt;a href=&quot;hhttp://drscg.tistory.com/647&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;후속 게시물&lt;/a&gt;에 포함되어 있다.)&lt;/p&gt;&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; margin-bottom: 6px; list-style-type: decimal;&quot;&gt;&lt;p&gt;At this point, you have two options:&lt;br /&gt;이 시점에서, 여러분은 2가지 옵션을 가진다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none; padding-top: 0px; padding-right: 0px; padding-bottom: 0px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If the overall quality&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;increases&lt;/em&gt;&amp;nbsp;and meets your quality SLAs, you’re done, otherwise repeat until you reach the desired quality.&lt;br /&gt;전반적인 품질이 증가하고, 품질 SLA를 만족하면, 완료되었다.&amp;nbsp;그렇지 않으면, 원하는 품질에 이를 때까지 반복한다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;If the overall quality&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;decreases&lt;/em&gt;, revert the change, make a note of it for future reference and try something else.&lt;br /&gt;전반적인 품질이 떨어지면, 변경을 되돌리고, 나중에 참조할 수 있도록 메모해 두고, 다른 것을 시도하자.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;/ol&gt;
	
	&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Just remember: Ranking evaluation should be repeated periodically as data, users, and/or queries change. Every changing variable can affect relevancy (different index size, different data, different query templates, etc.). Please keep in mind, that it is usually not possible to completely exhaust every possible search. The number of questions (queries) and possible answers (results) is just too open and large to be evaluated scientifically with full test coverage.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;data, 사용자, query가 변경되면, ranking evaluation을 주기적으로 반복해야 한다는 점을 기억하자. 변화하는 모든 변수(index size, data, query template 등)는 relevance에 영향을 미칠 수 있다. 일반적으로 가능한 모든 search를 완벽하게 하는 것은 불가능하다는 점을 기억하자. 질문(query)의 수와 가능한 답변(query)의 수는 너무 광범위하여, 전체 테스트 범위를 과학적으로 평가할 수는 없다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In some cases, when you use your search engine to perform matching (e.g. name matching) and look for one specific result (or very few), then you could theoretically test it completely and your evaluation result would be a lot more representative. In most cases though you can only do partial testing of a sample. This is the reason why you should try to pick a representative sample of queries and you should try to work with realistic relevance judgements.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;경우에 따라, search engine을 사용하여 match(예: 이름 match)를 수행하고, 하나의 특정 결과(또는 매우 작은)를 찾는 경우, 이론적으로 그것을 완벽하게 테스트할 수 있고, 평가 결과가 훨씬 더 대표적인 사례가 될 수 있다. 대부분의 경우 예제에 대한 부분적인 테스트만 할 수 있다. 이것이 query에 대한 대표적인 예제를 선택해야 하고 현실적인 relevance 판단을 가지고 작업해야 하는 이유이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Good luck with tuning relevance. As you start to use the Ranking Evaluation API, let us know about your feedback and experiences on our&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Discuss forum&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;relevance tuning에 행운을 빈다. Ranking Evaluation API의 사용을 시작하면서, 여러분의 의견 및 경험에 대해&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;discuss forum&lt;/a&gt;에 알려주기 바란다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/test-driven-relevance-tuning-of-elasticsearch-using-the-ranking-evaluation-api&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Test-Driven Relevance Tuning of Elasticsearch using the Ranking Evaluation API&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>evaluation</category>
      <category>Ranking</category>
      <category>Relevance</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/646</guid>
      <comments>https://drscg.tistory.com/646#entry646comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:32:36 +0900</pubDate>
    </item>
    <item>
      <title>2018.06.27 - How to Search Chinese, Japanese, and Korean Text with Elasticsearch 6.2 - Part 3: Language Detector ...</title>
      <link>https://drscg.tistory.com/645</link>
      <description>&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px 3pt; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;이 글은&amp;nbsp;한국어, 중국어, 일본어 검색에 대한 3부작 중 마지막 글입니다. 만약 아직 1부를 읽지 않았다면&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-1&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;1부: 형태소 분석기&lt;/a&gt;부터 읽으시기 바랍니다.&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(17, 85, 204); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; text-decoration-line: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-2&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;엘라스틱서치 6.2를 이용한 한국어, 중국어, 일본어 검색 - 2부: Multi-fields&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;에서는 멀티필드를 이용해서 다국어로 작성된 문서를 인덱싱하고 검색하는 방법을 살펴봤습니다. 하지만 하나의 텍스트를 언어에 상관 없이 4개의 필드에 저장하고 4개의 분석기로 분석하는 것은 시간과 저장공간의 낭비입니다. 이제 마지막으로 language detector를 이용해서 최적화해 보겠습니다. 텍스트는 역시 &lt;/span&gt;&lt;a href=&quot;https://www.pyeongchang2018.com/ko/about-the-games&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.pyeongchang2018.com/ko/about-the-games&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;https://www.pyeongchang2018.com/ko/about-the-games&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;에서 발췌했습니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px 3pt; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Language detector&lt;/h2&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;language detection용 ingest plugin(&lt;/span&gt;&lt;a href=&quot;https://github.com/spinscale/elasticsearch-ingest-langdetect&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/spinscale/elasticsearch-ingest-langdetect&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;https://github.com/spinscale/elasticsearch-ingest-...&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;)을 설치해서 시간과 저장공간을 절약하려고 합니다. 텍스트를 주 필드와 세 개의 서브필드로 인덱싱하는 대신, 아래 ingest pipeline의 langdetect processor는 “body” 필드의 언어를 감지해서 “language” 필드에 기록합니다. 그 다음 script processor는 “body” 필드의 내용을 언어별 필드(english_field, korean_field, japanese_field, or chinese_field)에 복사해서 분석합니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;PUT _ingest&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;pipeline&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;langdetect&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;pipeline
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;description&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;A pipeline to do whatever&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;processors&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;langdetect&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;target_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;language&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;lang&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;painless&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;if (ctx.language == 'ko') ctx.korean_field = ctx.body; if (ctx.language == 'ja') ctx.japanese_field = ctx.body; if (ctx.language == 'zh-cn') ctx.chinese_field = ctx.body; if (ctx.language == 'en') ctx.english_field = ctx.body;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;이 블로그에서는 &lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-weight: 400; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;kuromoji&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-smartcn.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-weight: 400; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;smartcn&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://github.com/open-korean-text/elasticsearch-analysis-openkoreantext&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; font-weight: 400; font-family: Arial; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;openkoreantext-analyzer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;를 이용하므로, 아래 인덱스를 만들기 전에 이들 플러그인을 설치해야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;DELETE test2
PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;mappings&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;properties&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;english_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;analyzer&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;openkoreantext-analyzer&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;japanese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;analyzer&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;kuromoji&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;chinese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;analyzer&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;smartcn&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;문서를 인덱싱할 때는 language detector를 사용하도록 “langdetect-pipeline” 파이프라인을 지정해야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;pipeline&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;langdetect&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;pipeline
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;The XXIII Olympic Winter Games will be held for 17 days from 9 to 25 February 2018 in PyeongChang, Gangwon Province, the Republic of Korea. PyeongChang was selected as the host city of the 2018 Olympic Winter Games after receiving a majority vote at the 123rd IOC Session held on 6 July 2011 after three consecutive bids. The Olympic Winter Games will be held in Korea for the first time in 30 years after the Seoul Olympic Games in 1988. PyeongChang will be the stage for the&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt; Opening and Closing Ceremonies and most snow sports. Alpine speed events will take place in Jeongseon, and all ice sports will be competed in the coastal city of Gangneung.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;langdetect&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;langdetect&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;第23届冬季奥运会将于2018年2月9日-25日在韩国江原道平昌展开。韩国平昌在第三次申奥之后，于2011年7月6日召开的第123届国际奥委会全会上被选定为2018年冬季奥运会的主办地。由此，韩国自1988年举办首尔夏季奥运会以后，时隔30年，将首次举办冬季奥运会。该届冬奥会的开·闭幕式以及大部分的雪上运动将在平昌进行，而所有冰上运动将在江陵、高山滑雪滑降比赛则将在旌善进行。&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; color: rgb(0, 102, 102);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;langdetect&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;pipeline
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;第23回冬季オリンピック大会は大韓民国江原道平昌で2018年2月9日から25日までの17日間、開催されます。大韓民国・平昌は三度の挑戦の末、2011年7月7日に開かれた第123回IOC総会で過半数票を獲得し、2018年冬季オリンピック及びパラリンピックの開催地に選ばれました。これにより1988年ソウルオリンピック開催後30年の時を経てついに、大韓民国で最初の冬季パラリンピックの舞台が繰り広げられます。平昌で開・閉会式とほぼ全ての雪上競技が開催され、江陵では氷上種目全競技が、そして旌善ではアルペンスキー滑降競技が開催される予定です。&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;예를 들어, “body” 필드의 내용이 한국어이면, 아래와 같이 “korean_field”로 복사됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;GET &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;2&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_version&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;found&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;language&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;ko&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다.&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;&quot;제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;멀티필드를 사용했을 때와 비슷한 검색 결과를 얻을 수 있습니다. 결과를 필터링하기 위해 &lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-request-source-filtering.html&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; font-weight: 400; color: rgb(17, 85, 204); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; text-decoration-line: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;source filtering&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;을 사용했습니다.&lt;/span&gt;&lt;/p&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 45px; margin: 0px; font-size: 26px; background-color: rgb(247, 247, 247);&quot;&gt;한국어&lt;/h3&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;올림픽대회&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;english_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;chinese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;japanese_field&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.57860667&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;2&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.57860667&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;제23회 동계올림픽대회는 대한민국 강원도 평창에서 2018년 2월 9일부터 25일까지 17일간 개최됩니다. 대한민국 평창은 세 번의 도전 끝에 지난 2011년 7월 6일 열린 제123차 IOC&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt; 총회에서 과반 표를 획득하며 2018년 동계올림픽 개최지로 선정되었습니다. 이로써 대한민국에서는 1988년 서울 올림픽 이후 30년 만에, 평창에서 개∙폐회식과 대부분의 설상 경기가 개최되며, 강릉에서는 빙상 종목 전 경기가, 그리고 정선에서는 알파인 스키 활강 경기가 개최될 예정입니다.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 45px; margin: 0px; font-size: 26px; background-color: rgb(247, 247, 247);&quot;&gt;영어&lt;/h3&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;Olympic Games&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;english_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;chinese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;japanese_field&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.97953933&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.97953933&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;The XXIII Olympic Winter Games will be held for 17 days from 9 to 25 February 2018 in PyeongChang, Gangwon Province, the Republic of Korea. PyeongChang was selected as the host city of the 2018&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt; Olympic Winter Games after receiving a majority vote at the 123rd IOC Session held on 6 July 2011 after three consecutive bids. The Olympic Winter Games will be held in Korea for the first time in 30 years after the Seoul Olympic Games in 1988. PyeongChang will be the stage for the Opening and Closing Ceremonies and most snow sports. Alpine speed events will take place in Jeongseon, and all ice sports will be competed in the coastal city of Gangneung.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 45px; margin: 0px; font-size: 26px; background-color: rgb(247, 247, 247);&quot;&gt;일본어&lt;/h3&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;オリンピック大会&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;english_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;chinese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;japanese_field&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.7469032&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test2&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;4&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.7469032&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;第23回冬季オリンピック大会は大韓民国江原道平昌で2018年2月9日から25日までの17日間、開催されます。大韓民国・平昌は三度の挑戦の末、2011年7月7日に開かれた第123回IOC総会で過半数票を獲得し、2018&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;年冬季オリンピック及びパラリンピックの開催地に選ばれました。これにより1988年ソウルオリンピック開催後30年の時を経てついに、大韓民国で最初の冬季パラリンピックの舞台が繰り広げられます。平昌で開・閉会式とほぼ全ての雪上競技が開催され、江陵では氷上種目全競技が、そして旌善ではアルペンスキー滑降競技が開催される予定です。&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 45px; margin: 0px; font-size: 26px; background-color: rgb(247, 247, 247);&quot;&gt;중국어&lt;/h3&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;POST &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;test2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_search
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;multi_match&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;奥运会&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;fields&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;english_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;korean_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;chinese_field&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;japanese_field&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;total&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;max_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.49148652&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;hits&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_index&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;test2&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_type&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;docs&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_id&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;3&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_score&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 102, 102);&quot;&gt;0.49148652&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;_source&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;body&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;第23届冬季奥运会将于2018年2月9日-25日在韩国江原道平昌展开。韩国平昌在第三次申奥之后，于2011年7月6日召开的第123届国际奥委会全会上被选定为2018年冬季奥运会的主办地。由此，韩国自1988&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(68, 68, 68);&quot;&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; color: rgb(0, 136, 0);&quot;&gt;年举办首尔夏季奥运会以后，时隔30年，将首次举办冬季奥运会。该届冬奥会的开·闭幕式以及大部分的雪上运动将在平昌进行，而所有冰上运动将在江陵、高山滑雪滑降比赛则将在旌善进行。&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3#&quot; class=&quot;read-less&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px; display: block; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; line-height: 15px; margin: 10px auto; position: relative; text-align: center; width: 95px; border-right: 1px solid rgb(0, 169, 229);&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Read&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; font-size: 16px; font-weight: normal;&quot;&gt;Less&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;주목할 것은 일본어 키워드로 검색하면 일본어 문서만 리턴되고, 중국어 키워드로 검색하면 중국어 문서만 리턴된다는 것입니다. 이는 &lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-2&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; font-weight: 400; color: rgb(17, 85, 204); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; text-decoration-line: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;엘라스틱서치 6.2를 이용한 한국어, 중국어, 일본어 검색 - 2부: Multi-fields&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;와 다른데, 언어별 분석기로 분석된 필드만 검색하기 때문입니다.&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br class=&quot;kix-line-break&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;시간이 더 걸리진 않을까요?&lt;/h2&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;인덱싱이나 쿼리에 걸리는 시간이 걱정된다면, 멀티필드나 language detector를 이용해서 인덱싱하는 데 걸리는 시간은 단일 필드를 이용할 때보다 약간 더 길지만 큰 차이는 없습니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br class=&quot;kix-line-break&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;img title=&quot;Chart&quot; src=&quot;https://lh4.googleusercontent.com/wwE0Ky6GTQpKK2T1PnFZBgF0tTUw3_acbS3ExaDobYaEcDvKH6RjJA8gOq6qJcOGHlQv_mKVyRCUycMY94Ps0ZeioOZWu6CiTaJn7wYix3vYkOYNTMbhZlf3i9UT9-Zk8s77qsS1&quot; style=&quot;box-sizing: border-box; border: none; vertical-align: middle; display: block; height: auto; max-width: 100%; transform: rotate(0rad);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;그림 1 500개의 문서를 인덱싱하는 데 걸리는 시간(맥북 프로, 2.9 GHz 인텔 코어 i7, 16GB 2133 MHz LPDDR3)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;멀티필드나 language detector를 이용해서 쿼리하는 데 걸리는 시간은 단일 필드를 이용할 때와 거의 같습니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;img title=&quot;Chart&quot; src=&quot;https://lh3.googleusercontent.com/PbI1C3bFxZQge7hQxY1a4KDLLNaFr_ZDMCVrJXNuNOxLUMcOc6zwm9Jl8F_Z1cbczKQYrf7i5N7VNZwUewao199tA2rv4AX14Ks4oQGcc0oZSAqkg7gStteHj0J7TeLAAhh9Ml6Q&quot; style=&quot;box-sizing: border-box; border: none; vertical-align: middle; display: block; height: auto; max-width: 100%; transform: rotate(0rad);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;그림 2 쿼리를 500번 실행하는 데 걸리는 시간(맥북 프로, 2.9 GHz 인텔 코어 i7, 16GB 2133 MHz LPDDR3)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Language detector를 이용하면, 멀티필드를 쓸 때보다 좋은 쿼리 결과를 얻을 수 있고 저장공간도 절약할 수 있습니다. 엘라스틱서치 6.x에는 심지어 “Sparse Field Improvements” (&lt;a href=&quot;https://www.elastic.co/blog/minimize-index-storage-size-elasticsearch-6-0&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Space Saving Improvements in Elasticsearch 6.0&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;참고)도 포함되어 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0pt 0px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); line-height: 1.38;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;부록&lt;/h2&gt;&lt;p dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;a href=&quot;https://github.com/kiju98/analyzers/blob/master/multi-lang-scripts.zip&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;multi-lang-scripts.zip&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;index.sh - 인덱싱 시간 측정 스크립트&lt;/span&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 11pt; color: rgb(0, 0, 0); font-family: Arial; background-color: transparent; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;query.sh - 쿼리 시간 측정 스크립트&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(125, 125, 125); font-family: 돋움, Dotum, Verdana, AppleGothic, sans-serif; font-size: 12pt; background-color: rgb(231, 231, 231);&quot;&gt;원문 :&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;color: rgb(125, 125, 125); font-family: 돋움, Dotum, Verdana, AppleGothic, sans-serif; font-size: 12px; background-color: rgb(231, 231, 231);&quot;&gt;&lt;a href=&quot;https://www.elastic.co/kr/blog/how-to-search-ch-jp-kr-part-3&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(125, 125, 125);&quot;&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-size: 12pt;&quot;&gt;엘라스틱서치 6.2를 이용한 한국어, 중국어, 일본어 검색 - 3부: Language Detector&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br style=&quot;color: rgb(125, 125, 125); font-family: 돋움, Dotum, Verdana, AppleGothic, sans-serif; font-size: 12px; background-color: rgb(231, 231, 231);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>langdetect</category>
      <category>langdetect-pipeline</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/645</guid>
      <comments>https://drscg.tistory.com/645#entry645comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:31:23 +0900</pubDate>
    </item>
    <item>
      <title>2018.05.03 - 번역 - Improving Response Latency in Elasticsearch with Adaptive Replica Selection ...</title>
      <link>https://drscg.tistory.com/644</link>
      <description>&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Introduction&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In this blog post, I am going to describe a new feature of Elasticsearch called Adaptive Replica Selection (ARS). Before describing what ARS does, I’ll first describe the problem that it tries to solve. Imagine that you have a cluster with three nodes. And across those three nodes, you have a shard and its replicas.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 게시물에서는 Elasticsearch의 새로운 기능인 Adaptive Replica Selection (ARS)를 설명하려 한다. 먼저 해결하려는 문제에 대해 설명하겠다. 3개의 node를 가진 cluster를 가정하자. 3개의 node에 shard와 그 replica가 있다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://www.elastic.co/assets/bltc5c4d4044e1a9511/image1.png&quot; data-sys-asset-uid=&quot;bltc5c4d4044e1a9511&quot; alt=&quot;happy_cluster.png&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; height: auto; max-width: 100%; display: block; margin: auto;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Then imagine that one node starts to experience distress.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그런 다음, 한 node에 문제가 있다고 가정하자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://www.elastic.co/assets/blt1872638614f74e13/image2.png&quot; data-sys-asset-uid=&quot;blt1872638614f74e13&quot; alt=&quot;not_happy_cluster.png&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; height: auto; max-width: 100%; display: block; margin: auto;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When a search request is received, Elasticsearch first determines which shards need to be queried, and then determines which nodes contain copies of that shard. Once it’s done that, it then sends the request to a single copy of the shard via round-robin selection. So if Elasticsearch sends the request to shard copy 2, we will see degraded performance compared to requests to the other copies:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;search request가 들어오면, 먼저 Elasticsearch는 query에 어떤 shard가 필요한지를 결정하고, 해당 shard의 복사본을 가지고 있는 node가 어떤 것인가를 결정한다. 이것이 완료되면, round-robin 방식으로 shard의 단일 복사본에 request를 전송한다. 따라서, Elasticsearch가 shard 복사본 2에 request를 전송하면, 다른 복사본에 request하는 것에 비해 성능이 저하될 것이다.&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;shard copy 1: 100ms&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;shard copy 2 (degraded): 1350ms&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;shard copy 3: 150ms&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The degradation of the node with the second copy of the data can be caused by any number of things, like long garbage collection cycles, high disk IO, network saturation, or heterogeneous node types. This causes tail latency of requests to rise, not to mention it frustrates whoever is unlucky enough to be waiting for the query when it’s run against shard copy 2.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;data의 두번째 복사본이 있는 node의 성능 저하는 긴 GC 주기, 높은 disk IO, network 포화, 이기종 node 유형 같은 여러 가지 원인으로 발생할 수 있다. 이로 인해, request에 대한 대기 시간이 길어지고, shard 복사본 2에 대해 실행한 query를 기다리는 불운한 이를 좌절케 한다는 것은 말할 것도 없다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;So what can be done? We would like Elasticsearch to be smart enough to route requests to the other copies of data until this node has recovered enough to handle more search requests. In Elasticsearch, we call this process of selecting the best available copy of the shard Adaptive Replica Selection.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;그렇다면, 무엇을 할 수 있을까? Elasticsearch는 이 node가 더 많은 search request를 처리할 수 있도록 복구될 때까지 data의 다른 복사본으로 request를 route할 수 있을 만큼 충분히 스마트하다고 여긴다. Elasticsearch에서, shard의 가장 활용 가능한 복사본을 선택하는 이 process를 Adaptive Replica Selection라 한다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Adaptive Replica Selection&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS is an implementation of an academic paper called&amp;nbsp;&lt;a href=&quot;https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/suresh&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;C3: Cutting Tail Latency in Cloud Data Stores via Adaptive Replica Selection&lt;/a&gt;. Originally, the paper was written for Cassandra, which means we had to adapt some things to fit Elasticsearch due to the differences in behavior between the two.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS는&amp;nbsp;&lt;a href=&quot;https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/suresh&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;C3: Adaptive Replica Selection을 통한 Cloud Data 저장소에서의 대기 시간 단축&lt;/a&gt;이라는 학술 논문을 구현한 것이다. 원래 이 논문은 Cassandra를 위해 작성되어, 둘 사이의 동작 방식의 차이 때문에 몇 가지를 Elasticsearch에 맞도록 수정해야 했다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Our ARS implementation is based on a formula where, for each search request, Elasticsearch ranks each copy of the shard to determine which is likeliest to be the &quot;best&quot; copy to send the request to. Instead of sending requests in a round-robin fashion to each copy of the shard, Elasticsearch selects the &quot;best&quot; copy and routes the request there.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS 구현은 각 search request에 대하여, ELasticsearch가 request를 전송할 때 &quot;최상&quot;의 복사본이 될 가능성이 가장 높은 복사본을 결정하기 위하여, 각 shard 복사본의 순위를 결정하는 수식을 기반으로 한다. shard의 각 복사본에 round-robin 방식으로 request를 전송하는 대신, Elasticsearch는 &quot;최상&quot;의 복사본을 선택하고 거기에 request를 route한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The ARS formula initially seems complex, but let's break it down:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS 수식은 처음에는 복잡해 보인다. 하지만 그것을 나눠보면&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); text-align: center;&quot;&gt;Ψ(s) = R(s) - 1/µ̄(s) + (q̂(s))^3 / µ̄(s)&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Where q̂(s) is:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247); text-align: center;&quot;&gt;q̂(s) = 1 + (os(s) * n) + q(s)&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;And looking at the individual pieces:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;개별 부분을 보면&lt;/p&gt;

&lt;ul style=&quot;box-sizing: border-box; margin: 0px 0px 21px; background: none rgb(247, 247, 247); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;os(s) is the number of outstanding search requests to a node&lt;br /&gt;os(s) 는 node에서 아직 처리하지 못한 search request의 수이다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;n is the number of data nodes in the system&lt;br /&gt;n 은 system에서 data node의 수이다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;R(s) is the&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;EWMA&lt;/a&gt;&amp;nbsp;of the response time (as seen from the node coordinating the search) in milliseconds&lt;br /&gt;R(s) 는 response 시간(coordinating node에서 본)의 &lt;a href=&quot;https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;EWMA&lt;/a&gt;이다. ms 단위&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;q(s) is the EWMA of the number of events in the search thread pool queue&lt;br /&gt;q(s) 는 search thread pool queue에서 event 수의 EWMA이다.&lt;/li&gt;
&lt;li style=&quot;box-sizing: border-box; background: none; list-style-type: disc; margin: 0px 0px 6px 20px; padding: 0px;&quot;&gt;µ̄(s) is the EWMA of service time of search events on the data node in milliseconds&lt;br /&gt;µ̄(s)̄ 는 data node에서의 search event의 service time의 EWMA이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Response time is the time measured for a request from the coordinating node, whereas service time is the time measured on the node executing the request (not including any time the request may have spent in the queue). Roughly speaking, this means that as the difference between the response time and service time grows — as well as the number of searches in the queue and the outstanding requests for a node — the higher a score the node will receive (lower scored nodes are considered the “best” ranked). For example, the (q̂(s))^3 part of the formula means that as the number of connections to a data node, and the number of searches in the node’s queue increases, the score will go up in a cubic exponential manner. By factoring in the number of outstanding search requests in the formula, we also make sure that nodes with identical load and response times still distribute requests among shard copies.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;response time은 coordinating node에서 request에 대해 측정한시간이고, 반면에 service time은 request를 실행한 node에서 축정한 시간(request가 queue에서 소비한 시간은 포함하지 않음)이다. 대략적으로 말하면, 이는 response time과 service time(뿐만 아니라 queue의 search 수와 node에서 아직 처리하지 못한 request의 수)의 차이가 증가하면, node가 받을 score가 더 높아진다(더 낮은 score를 가진 node가 &quot;최상&quot;의 순위로 간주된다)는 것을 의미한다. 예를 들어, 수식의 (q̂(s))^3 부분은 data node에 대한 연결 수와 node의 queue에 있는 search의 수가 증가함에 따라, score가 3제곱의 형식으로 증가하는 것을 의미한다. 수식에서, 아직 처리하지 못한 search request의 수를 고려하여, 동일한 loadd와 response time을 가진 node가 여전히 shard 복사본간에 request를 배포하는지를 확인한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch gathers most of these values using a specialized thread pool for search actions on each of the nodes. For each search response, these values are piggybacked on the results back to the coordinating node, which stores them so the node can be ranked for subsequent requests. When the next search request comes in, the node with the lowest score will serve the request. If the node encounters an exception, the node with the next best score serves the search request. Since we don't want loaded nodes to have searches routed away forever, every time a node is not the best ranked node, we slightly adjust the score to make it a better candidate for handling future requests.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch는 각 node의 search 작업을 위하여 특별한 thread pool을 사용하여 이들 값의 대부분을 수집한다. 각 search response에 대해, 이들 값은 coordinating node로 반환되는 결과에 덧붙여지고, coordinating node는 그것을 저장하여, node는 이어지는 request에에 대해 순위를 매길 수 있다. 다음 search request가 들어오면, 가장 낮은 score를 가진 node가 request를 처리한다. 만약 node에서 exception이 발생하면, 다음 최상의 score를 가진 node가 request를 처리한다. 부하를 가진 node에 계속해서 search가 route되지 않도록, node가 최상위 node가 아닐 때 마다 score를 약간 조정하여, 향후 request를 처리할 수 있는 더 나은 후보가 되도록 한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Going back to our original example, the selected node for the request would be either shard copy 1 or 3, avoiding the overloaded shard copy 2.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원래의 예제로 되돌아가서, request에 의해 선택된 node는 과부하가 걸린 shard copy 2를 피하여, copy 1이나 3이 될 것이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS is&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search.html#search-adaptive-replica&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;available in Elasticsearch 6.1 and later&lt;/a&gt;, but is turned off by default in all 6.x releases. It can be turned on dynamically by changing the&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;cluster.routing.use_adaptive_replica_selection&lt;/code&gt;&amp;nbsp;setting:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;ARS는&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search.html#search-adaptive-replica&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;available in Elasticsearch 6.1 이후 버전에서 이용할 수 있다.&lt;/a&gt;&amp;nbsp;그러나, 모든 6.x 에서 기본적으로 비활성화되어 있다.&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;cluster.routing.use_adaptive_replica_selection&lt;/code&gt;&amp;nbsp;설정을 변경하여, 동적으로 활성화할 수 있다.&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; font-size: 15px; display: inline-block; padding: 10px; margin-top: 0px; margin-bottom: 15px; line-height: 1.42857; word-break: break-word; overflow-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(240, 240, 240); border-width: 0px 0px 0px 3px; border-style: none none none solid; border-top-color: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: rgb(57, 189, 177); border-image: initial; border-radius: 0px; white-space: pre-wrap; width: 847.5px;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;PUT &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;_cluster&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;settings
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;transient&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 136, 0);&quot;&gt;&quot;cluster.routing.use_adaptive_replica_selection&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 136);&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; font-size: 16px; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In Elasticsearch 7.0 and later, ARS will be turned on by default.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch 7.0 이후에는 기본적으로 활성화된다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Improvements with ARS&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;How much do we expect this to help? We ran benchmarks with&amp;nbsp;&lt;a href=&quot;https://github.com/elastic/rally&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Rally&lt;/a&gt;&amp;nbsp;for many scenarios, both with and without simulating load on one of the nodes containing a copy of the data. In our case, we used a single coordinating node connected to a cluster of five nodes, searching an index with five primary shards each with a single replica. In each benchmark, the search requests were sent as quickly as possible from 100 Rally connections.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이것이 얼마나 도움이 될가? data의 복사본을 가지고 있는 node 중 하나에 부하를 주는 시뮬레이션을 하거나 하지 않고, 많은 시나리오에 대해&amp;nbsp;&lt;a href=&quot;https://github.com/elastic/rally&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Rally&lt;/a&gt;로 벤치마크했다. 우리의 경우, 5개의 node를 가진 cluster에 연결된 단일 coordinating node를 사용하여, 각각 하나의 replica를 가진 5개의 primary shard가 있는 index를 검색했다. 각 벤치마크에서, search request는 100개의 Rally connection에서 가능한 한 빨리 전송하였다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; line-height: 37px; margin: 0px; font-size: 20px; background-color: rgb(247, 247, 247);&quot;&gt;Non-loaded case:&lt;/h4&gt;&lt;table style=&quot;box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb(247, 247, 247); line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Metric&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;No ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Change %&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Median Throughput (queries/s)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;95.7866&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;98.537&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;2.8&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Median latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1003.29&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;970.15&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-3.3&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;90th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1339.69&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1326.79&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-0.9&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;99th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1648.34&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1648.8&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: red; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;0.027&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The non-loaded case makes sense in a system where none of the nodes are under undue stress (high GCs, disk issues, etc). We expected throughput and latency to remain largely the same, which it did. Since a coordinating node is being used for queries, we avoided hotspots from a node having to coordinate any of the search responses.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;부하가 없는 사례는 node가 과도한 스트레스(높은 GC, disk 문제 등)를 받지 않는 싯스템에 적당하다. 처리량과 대기시간이 거의 동일하게 유지되기를 기대했고 그러했다. coordinating node는 query에 대해 사용되므로, search response를 조정해야 하는 node의 hotspot을 피했다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; line-height: 37px; margin: 0px; font-size: 20px; background-color: rgb(247, 247, 247);&quot;&gt;Single node under load:&lt;/h4&gt;&lt;table style=&quot;box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb(247, 247, 247); line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Metric&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;No ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Change %&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Median Throughput (queries/s)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;41.1558&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;87.8231&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;113.4&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Median latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;411.721&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1007.22&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: red; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;144.6&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;90th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;5215.34&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1839.46&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-64.7&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;99th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;6181.48&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;2433.55&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-60.6&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In this scenario we simulated load on a node by using the stress command with the parameters&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; padding: 2px 4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px; display: inline;&quot;&gt;stress -i 8 -c 8 -m 8 -d 8&lt;/code&gt;&amp;nbsp;(which runs stress with 8 CPU workers, 8 IO workers, 8 memory workers, and 8 hard drive workers). With ARS there is a&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;large&lt;/em&gt;&amp;nbsp;improvement in throughput for the loaded case, as well as a trade-off of 50th percentile latency for a large improvement in 90th and 99th percentile latency. So we were able to route around the degraded node quite well. The 50th percentile latency increase is expected since instead of requests having a &quot;luck-of-the-draw&quot; for whether they go to an unstressed or stressed node, they now avoid the stressed node, slightly increasing load for the unstressed nodes (and thus latency).&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;이 시나리오에서&amp;nbsp;&lt;span style=&quot;background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px;&quot;&gt;stress -i 8 -c 8 -m 8 -d 8&lt;/span&gt;&amp;nbsp; (각각 8개의 CPU worker, IO worker, memory worker, hard drive&amp;nbsp;worker를 가진 stress를 실행한다)라는 매개변수를 가진 stress command를 사용하여, node애 부하를 주는 테스트를 했다.&amp;nbsp; ARS를 사용하면, 부하를 가진 경우에 대해 처리량이 크게 개선되고, 90~99번째 백분위 대기시간이 크게 증가하여 50번째 백분위와 절충된다. 그래서, 성능이 저하된 node 주변으로 잘 route할 수 있다. request가 stress를 받는 node로 갈지 받지 않는 node로 갈지를 운에 맡기는 대신, stress를 받는 node를 피하고 stress를 받지 않는 node에 대한 부하(따라서 대기시간도)를 약간 증가시키기 때문에, 50번째 백분위 대기시간 증가가 예상된다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; line-height: 37px; margin: 0px; font-size: 20px; background-color: rgb(247, 247, 247);&quot;&gt;Single replica, round-robin requests:&lt;/h4&gt;&lt;table style=&quot;box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; background-color: rgb(247, 247, 247); line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; margin-bottom: 40px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;&lt;tbody style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Metric&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;No ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;ARS&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 600; font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;;&quot;&gt;Change %&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;Median Throughput (queries/s)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;89.6289&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;95.9452&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;50th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1088.81&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1013.61&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-6.9&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;90th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1706.07&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1423.83&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-16.5&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box; line-height: 26px;&quot;&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;99th percentile latency (ms)&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;2481.1&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: rgb(68, 68, 68); font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;1783.73&lt;/td&gt;&lt;td style=&quot;box-sizing: border-box; padding: 10px; line-height: 26px; color: green; font-size: 15px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); text-align: center;&quot;&gt;-28.1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Finally we tested without a coordinating node, sending the requests in a round-robin manner to each node in the cluster without any stress induced. An improvement can be seen in both throughput and latency. So even if the cluster is experiencing even load, ARS can still improve throughput and latency.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;마지막으로, coordinating node없이, stress를 유발하지 않고 cluster의 각 node에 round-robin 방식으로 request를 전송하여 테스트했다. 처리량과 대기시간 모두 개선되었다. 따라서, cluster에 부하가 발생하더라도, ARS는 여전히 처리량과 대기시간을 개선할 수 있다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Conclusion&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As you can see, we expect Adaptive Replica Selection to help in many situations. ARS allows the coordinating node to be aware of the load on the data nodes and allows it to choose the best shard copies for executing a search, improving search throughput as well as latency. If you are using Elasticsearch 6.1 or later, please try it out and let us know any feedback you have!&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;보다시피, Adaptive Replica Selection는 많은 상황에서 도움이 될 것으로 기대한다. ARS를 사용하면, coordinating node는 data node의 부하를 인식할 수 있고, search 실행을 위한 최상의 shard 복사본을 선택하여, 처리량과 대기시간을 향상시킬 수 있다.&amp;nbsp; Elasticsearch 6.1 이후를 사용하고 있다면, 적용해 보자.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;원문 :&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/blog/improving-response-latency-in-elasticsearch-with-adaptive-replica-selection&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Improving Response Latency in Elasticsearch with Adaptive Replica Selection&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>ARS</category>
      <category>latency</category>
      <category>replica</category>
      <category>Shard</category>
      <category>Throughput</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/644</guid>
      <comments>https://drscg.tistory.com/644#entry644comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:28:50 +0900</pubDate>
    </item>
    <item>
      <title>2017.11.22 - 번역 - Why am I seeing bulk rejections in my Elasticsearch cluster? ...</title>
      <link>https://drscg.tistory.com/640</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Elasticsearch supports a wide range of use-cases across our user base, and more and more of these rely on fast indexing to quickly get large amounts of data into Elasticsearch. Even though Elasticsearch is fast and index performance is continually improved, it is still possible to overwhelm it. At that point you typically see parts of bulk requests getting rejected. In this blog post we will look at the causes and how to avoid it.&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Elasticichearch는 사용자 기반 전체에서 광범위한 사용 사례를 지원하며, 점점 더 많은 사용자들이 빠른 indexing을 통해 대량의 data를 Elasticsearch로 빠르게&amp;nbsp;가져오고 있다. 비록 Elasticsearch가 빠르고, index 성능이 지속적으로 개선되고 있지만, 이것을 압도하는 것은 여전히 가능한 일이다. 이 시점에서 일반적으로 bulk request의 일부가 거부되는 것을 볼 수 있다. 이 블로그 포스트에서 우리는 그 원인과 그것을 피하는 방법을 살펴볼 것이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;This is the second installment in a series of blog posts where we look at and discuss your common questions. The first installment discussed and provided guidelines around &quot;&lt;a href=&quot;https://www.elastic.co/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;How many shards one should aim to have in an Elasticsearch cluster?&lt;/a&gt;&quot;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이는 우리가 여러분들의 흔한 질문들을 보고 토론하는 블로그 포스트들의 두번째 부분이다. 첫번째는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;&quot;&lt;/span&gt;&lt;a href=&quot;http://drscg.tistory.com/2&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;How many shards one should aim to have in an Elasticsearch cluster?&lt;/a&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;&quot; 에서 토론하여 가이드라인을&amp;nbsp;제공했다.&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;What happens when a bulk indexing request is sent to Elasticsearch?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Let’s start at the beginning and look at what happens behind the scenes when a bulk indexing request is sent to Elasticsearch.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;먼저 bulk indexing request가 Elasticsearch에 전송되면, 배후에서 어떤 일이 발생하는지 살펴보자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When a bulk request arrives at a node in the cluster, it is, in its entirety, put on the bulk queue and processed by the threads in the&amp;nbsp;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;bulk&lt;/code&gt;&amp;nbsp;thread pool. The node that receives the request is referred to as the coordinating node as it manages the life of the request and assembles the response. This can be a node dedicated to just coordinating requests or one of the data nodes in the cluster.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;bulk request가 cluster의 node에 도달하면, 전체적으로, 그것을 bulk queue에 넣고,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;bulk&lt;/code&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;&amp;nbsp;thread pool&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;의 thread에 의해 처리된다. request를 받은 node는, request의 수명을 관리하고 reponse을 구성하기 때문에&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating node&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;라고 한다. 이는 단지&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;request를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;하는 전용 node이거나 cluster의 data node 중 하나일 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;A bulk request can contain documents destined for multiple indices and shards. The first processing step is therefore to split it up based on which shards the documents need to be routed to. Once this is done, each bulk sub-request is forwarded to the data node that holds the corresponding primary shard, and it is there enqueued on that node’s bulk queue. If there is no more space available on the queue, the coordinating node will be notified that the bulk sub-request has been rejected.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;는 복수의 indices&amp;nbsp;및 shard를 위한 document가 포함될 수 있다. 그러므로 첫번째 처리 단계는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;document&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;를 routing해야 하는 shard에 따라 data를 분할하는 것이다. 이 작업이 완료되면, 각&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;sub-&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 해당 primary&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;shard&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;를 저장하고 있는 data node로 전달되며, 이 node의 bulk queue에 추가된다. queue에 사용할 수 있는 공간이 더 이상 없으면,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating node&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk sub-request가&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;거부되었음을 알리게 된다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The&amp;nbsp;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;bulk&lt;/code&gt;&amp;nbsp;thread pool processes requests from the queue and documents are forwarded to replica shards as part of this processing. Once the sub-request has completed, a response is sent to the coordinating node.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;bulk&lt;/code&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;&amp;nbsp;thread pool은 queue에서 request를 처리하고, document는 이 처리 과정의&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;일환으로 replica shard로 전달된다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;sub-request가&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;완료되면&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating node&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;로 reponse가 전송된다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Once all sub-requests have completed or been rejected, a response is created and returned to the client. It is possible, and even likely, that only a portion of the documents within a bulk request might have been rejected.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;모든&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;sub-request가&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;완료되거나 거부되면, response가 생성되어 client로 반환된다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에 포함된 document 중 일부만&amp;nbsp;거부될 수도&amp;nbsp;있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The reason Elasticsearch is designed with request queues of limited size is to protect the cluster from being overloaded, which increases stability and reliability. If there were no limits in place, clients could very easily bring a whole cluster down through bad or malicious behaviour. The limits that are in place have been set based on our extensive experience supporting Elasticsearch for different types of use-cases.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Elasticsearch가 제한된 크기의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request queue&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;로 설계된 이유는 안정성과 신뢰성을 높여, cluster가 과부하가 걸리는 것을 방지하기 위함입니다. 제한이 없는 경우, client는 좋지 않은 혹은 악의적인 동작을 통해, 전체 cluster를 아주 쉽게 중단시킬 수 있다. 현재의&amp;nbsp;제한 사항은 다양한 유형의 사용 사례에 대해 Elasticsearch를 지원하는 우리의 광범위한 경험에 기초하여 설정되었다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When using the HTTP interface, requests that results in at least a partial rejection will return with response code 429, 'Too many requests'. The principle also applies when the transport protocol is used, although the protocol and interface naturally is different. Applications and clients may report these errors back to the user in different ways, and some may even attempt to handle this automatically by retrying any rejected documents.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;HTTP interface&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;를 사용하는 경우, 최소한의&amp;nbsp;부분적인 거부를&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;return&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;하는 request는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;response code&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;429,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;'Too many requests' 와&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;함께 return된다. 비록&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;protocol&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;과&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;interface&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;는 당연히 다르지만,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;transport protocol&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 사용될 경우에도 이 원칙이 적용된다. application과 client는 이러한 오류를 사용자에게 다른 방식으로 보고할 수 있으며, 어떤 사용자는 거부된 document를 다시 시도하여, 이 오류를 자동으로 처리하려고 할 수도 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;How can we test this in practice?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In order to illustrate the practical impact of this behaviour, we devised a simple test where we use&amp;nbsp;&lt;a href=&quot;https://github.com/elastic/rally&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;our benchmarking tool Rally&lt;/a&gt;&amp;nbsp;to run bulk indexing requests against a couple of&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/cloud&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Elastic Cloud clusters&lt;/a&gt;&amp;nbsp;with varying number of data nodes. Configuration and instructions on how to run Rally is available in&amp;nbsp;&lt;a href=&quot;https://gist.github.com/cdahlqvist/2f368e8a874259b5cf4ca28b8a75d454&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;this gist&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이러한 동작이&amp;nbsp;실제 상황에서 미치는 영향을 설명하기 위해, 우리는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;https://github.com/elastic/rally&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;benchmarking tool Rally&lt;/a&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;를 사용하여, data node 수가 다양한 2 개의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;https://www.elastic.co/cloud&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;Elastic Cloud clusters&lt;/a&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에 대해,&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk indexing request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;을 실행하는 간단한 테스트를 실시했다. Rally를 운영하는 방법에 대한 구성 및 지침은&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;https://gist.github.com/cdahlqvist/2f368e8a874259b5cf4ca28b8a75d454&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;여기&lt;/a&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에서 확인할 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;The same indexing workload was run against three different Elastic Cloud clusters. We have been indexing with one replica shard configured wherever possible. The clusters consisted of one, two and three data nodes respectively, with each data node having 8GB RAM (4GB heap for Elasticsearch, 4GB native memory). Invoking the&amp;nbsp;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;GET /_nodes/thread_pool&lt;/code&gt;&amp;nbsp;API we could see that each data node by default had a fixed bulk thread pool size of two with a queue size of 200:&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3개의 서로 다른&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;Elastic Cloud cluster&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에 대해서도 동일한&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;indexing 작업을&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;실행했다. 우리는 가능한 한,&amp;nbsp;항상 하나의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;replica shard를 설정하고&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;indexing&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;작업을 수행했다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;cluster&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;는 각각 1개, 2개 및 3개의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;data node&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;로 구성되었으며, 각 data node는 8 GB RAM(Elasticsearch에 4GB heap, 4 GB 기본 momory)을 가진다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(85, 85, 85); font-family: monospace, serif; font-size: 14.4px; background-color: rgb(240, 240, 240);&quot;&gt;GET /_nodes/thread_pool&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;API를 호출하면 ,기본적으로&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;각 data node의&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;queue의 크기가 200이고, 고정된&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk thread pool&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;크기가 2라는 것을 알수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; overflow: auto; font-family: monospace, serif; display: inline-block; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; line-height: 1.42857; word-break: break-all; word-wrap: break-word; color: rgb(51, 51, 51); background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; white-space: pre-wrap; width: 847.5px;&quot;&gt;%&amp;gt; curl -XGET http://&amp;lt;es_url&amp;gt;:&amp;lt;es_port&amp;gt;/_nodes/thread_pool&amp;lt;/es_port&amp;gt;&amp;lt;/es_url&amp;gt;
&quot;bulk&quot;: {
&quot;type&quot;: &quot;fixed&quot;,
&quot;min&quot;: 2,
&quot;max&quot;: 2,
&quot;queue_size&quot;: 200
}
&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;During the test we indexed into a varying number of shards (2, 4, 8, 16, and 32) using a varying number of concurrent clients (8, 16, 24, 32, 48, and 64) for each cluster. For every combination of shard and client count we indexed 6.4 million documents with a batch size of 100 documents and another 6.4 million documents with a batch size of 200 documents. This means that in total we attempted to index 384 million documents per cluster.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;test를 하면서, 각 cluster에 대해 다양한 수의 동시(&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;concurrent)&lt;/span&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;client(8, 16, 24, 32, 48, 64)를 사용하여 다양한 수의 shard(2, 4, 8, 16, 16, 32)로 index했다. shard와 client 수를 조합할 때마다, 640만개의 document는 batch 크기를 100으로, 다른 640만개의 document는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;batch 크기를 200으로 index했&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;다. 즉, cluster별로 384만개의 document를 indexing하려고 했다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;For this test we treat the clusters as a black box, and perform the analysis from the client’s perspective. To limit the scope we will also not look at the impact of various configurations on performance as that is a quite large topic on its own.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 테스트에서는 cluster를&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;black box&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;로 취급하고, client의 관점에서 분석을 수행했다. 범위를 제한하기 위해, 다양한 구성이 성능에 미치는 영향은 다루지 않을 것이다. 이는 상당히 큰 주제이기 때문이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;All the generated, detailed metrics were sent to a separate Elastic Cloud instance for analysis using Kibana. For each request Rally measures how many the documents in the bulk request were rejected and successful. Based on this data we can classify each request as successful, partially rejected, and fully rejected. A few requests also timed out, and these have also been included for completeness.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;생성된 모든 상세 측정값은&amp;nbsp;Kibana를 사용하여 분석할 수 있도록 별도의 Elastic Cloud instance로 전송되었다. 각&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에 대해, bulk&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;에서 거부되고 성공한 문서 수를 Rally로 측정했다. 이러한 data를 토대로, 각&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request를&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;성공, 부분 거부, 완전한 거부로 분류하였다. 또한 약간의 time out된 &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;도,&lt;/span&gt;&lt;/font&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;완벽을 기하기 위해, 포함되었다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Unlike Beats and Logstash, Rally does not retry failed indexing requests, so each has the same number of requests executed but the final number of documents indexed varied from run to run depending on the volume of rejections.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Beats및 Logstash와 달리, Rally는 실패한&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;indexing request를&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;다시 시도하지 않기 때문에, 실행된&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;의 수는 동일하지만, 최종적으로 index된 document의 수는 거부의 양에 따라 달라진다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;How bulk rejection frequency depend on shard count, clients count, and data node count?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Bulk rejections occur when the bulk queues fill up. The number of queue slots that get used depends both on the number of concurrent requests, and the number of shards being indexed into. To measure this correlation we have added a calculated metric,&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: 600;&quot;&gt;client shard concurrency&lt;/span&gt;, to each run. This is defined as&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;the number of shards being indexed into&lt;/em&gt;, multiplied by&amp;nbsp;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;the number of concurrent indexing threads&lt;/em&gt;, and indicates how many queue slots would be needed to hold all bulk sub-requests.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;거부는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk queue&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 가득 차면 발생한다. 사용되는&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;queue slot&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;의 수는 동시&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수와 indexing&amp;nbsp;되는 shard&amp;nbsp;수에 따라 달라진다.&amp;nbsp;이러한 상관 관계를 측정하기 위해, 각각의 실행에 계산된 지표인&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; font-weight: 600;&quot;&gt;client shard concurrency&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 추가되었다. 이는 &lt;b&gt;&lt;i&gt;index될 shard의 수&lt;/i&gt;&lt;/b&gt;와&amp;nbsp;&lt;i&gt;&lt;b&gt;동시 indexing thread&amp;nbsp;수&lt;/b&gt;&lt;/i&gt;를&amp;nbsp;곱한 것으로 정의되며, 모든&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;bulk sub-request&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;을 보관하는 데 필요한&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;queue slot&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수를 나타낸다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;In the graph below, we show how the percentage of requests that result in partial or full rejections, depends on the client shard concurrency for the three different clusters.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;아래 그래프는,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;서로 다른 세개의 cluster에 대해,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;client shard concurrency&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;에 따라&lt;/span&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;, 부분 또는 완전한 거부가 발생하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;의 비율이 어떻게 달라지는지 보여준다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://lh5.googleusercontent.com/oIEqHAoEDkqeiv6nTISD08Lv_n-EKx6rlKRZ-obFQLbsOLWGgVEJHEMz3hE47j2aDvQ5E5SUdpNmZejbeDm__PCzmRb7zIMikgMp7J3j5lF4-PM26GGvfRMmwZvgGuJ614B1jwDa&quot; width=&quot;845&quot; height=&quot;430&quot; alt=&quot;Screen Shot 2017-11-08 at 09.28.57.png&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; display: block; height: auto; max-width: 100%;&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;For clusters with one or two nodes we can see that appearance of bulk rejections start when the client shard concurrency level is somewhere between 192 and 256. This makes sense as each node has a&amp;nbsp;&lt;code class=&quot;literal&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 14.4px; padding: 0px 5px; color: rgb(85, 85, 85); background: rgb(240, 240, 240); border-radius: 4px; display: inline; word-wrap: break-word; width: auto; overflow-x: auto; vertical-align: middle;&quot;&gt;bulk&lt;/code&gt;&amp;nbsp;queue size of 200. For the cluster with 3 nodes we can see that it is able to handle even higher level of client shard concurrency without any bulk rejections appearing.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;node가 하나 또는 두개인 cluster의 경우,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;client shard concurrency&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수준이 192개에서 256개 사이가 되면, bulk&amp;nbsp;거부가 시작되는 것을 볼 수 있다. 각 node의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(85, 85, 85); font-family: monospace, serif; font-size: 14.4px; background-color: rgb(240, 240, 240);&quot;&gt;bulk&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;queue 크기가 200개이므로 이는 타당합니다. node가 3개인 cluster의 경우, bulk 거부 반응 없이 더 높은 수준의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;client shard concurrency&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;을 처리할 수 있다는 것을 알 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Once we get over this limit, we start seeing partial bulk rejections, where at least one sub-request has managed to get queued and processed. A relatively small portion of requests also result on full rejections as the concurrency level increases, especially for the single node cluster.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 한계를 넘으면 부분적인 bulk&amp;nbsp;거부가 발생하기 시작하며, 여기서 하나 이상의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;sub-request가&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;queue에 들어가 처리된다. 또한, 상대적으로 request의 작은 부분이,&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;concurrency&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수준이 증가함에 따라, 특히 단일 node&amp;nbsp;cluster에 대해, 완전한 거부를 야기한다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When we compare the single and two node clusters, we can see that the percentage of fully successful requests increases slightly and that there are fewer full rejections. This is expected, as the total bulk queue across the cluster is twice as large and requests are sent to all data nodes. Even though the total bulk queue size is twice as large across the cluster, the 2 node cluster does not appear able to handle twice the client shard concurrency of the single node cluster. This is likely due to the fact that distribution is not perfect and that the introduction of replica shards have resulted in each indexing operation requiring more work and being slower as a result. An important thing to note is also that all partial rejections are treated as equals in this graph. The number of rejected documents is not shown and does indeed vary depending on the cluster size, but we will shortly look at that in greater detail.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;단일 node cluster와 2 node cluster를 비교하면, 완전히 성공한 request의 비율이 약간 증가하고&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;완전한&lt;/span&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;거부 횟수가 줄어드는 것을 알 수 있다. 이는 cluster의 총 bulk queue 크기가 2배가 되고 모든 data node에 request가 전송되기 때문에 예상되는 일다. 전체 bulk queue 크기가 cluster에서 2배로 되지만, 2 node cluster가 단일 node cluster의 client shard concurrency의 2배를 처리할 수 없을 것으로 보이지는 않는다. 이는 분포가 완벽하지 않고, replica shard를 도입하면 각각의 indexing 연산에 더 많은 작업이 필요하고, 그 결과 작업 속도가 느려지기 때문일 수 있다. 주목해야 할 중요한 점은 이 그래프에서 모든 부분적 거부가 동등하게 취급된다는 것이다. 거부된 문서의 수는 표시되지 않으며 cluster 크기에 따라 실제로 달라질 수 있다. 하지만 이에 대해서는 곧 자세히 살펴보겠습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;When we go to three data nodes, we see a more marked improvement, and receive requests without any rejections at high levels of concurrency. We also only see full rejections for the highest concurrency levels.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3개의 data node가 되면&amp;nbsp;더 큰 향상을 볼 수 있으며, 높은 수준의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;concurrency로&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;어떤 거부 없이 request를 받는다.&amp;nbsp;또한 가장 높은&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;concurrenc&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수준에 대한 완전한 거부만을 볼 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;If we instead plot the average portion of rejected documents per request as a function of shard and client count for the three clusters, we get the following graphs.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;대신에 3개의 cluster에 대한 shard의 기능과&amp;nbsp;client 수에 따라, request&amp;nbsp;시 거부된 document의 평균 부분을 표시해 보면,&amp;nbsp;다음 그래프를 볼 수 있습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/6xKwaZj_wc1ci4MQHLraEXieQL72wJDSm5ogwaGN1xBqP_cb72U0bzNfQCKLm7x0JSWUiOtqxOHSgtxLcnbUB-y4DKPo2qzMom5fY-iiFTvt3e2-ySW9jfc1sSWRq5XCW5_ztBUm&quot; width=&quot;624&quot; height=&quot;633&quot; alt=&quot;Screen Shot 2017-11-14 at 11.35.13.png&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; display: block; height: auto; max-width: 100%;&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Here we can see that the percentage of rejected events grows with increased concurrency levels for all cluster sizes. We can also see that the rejection levels drop across the board with the more data nodes we add, which is expected.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;여기서 모든 cluster의 크기에 대해 향상된&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;concurrency&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;수준과 함께 거부되는 event의 비율이 증가함을 알 수 있다. 또한 data node를 더 많이 추가하면, 거부 수준이 전반적으로 저하될 것으로 예상된다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Earlier we saw that partial rejections started at approximately the same time for both one and two node clusters. If we now look at these graphs, we can see that the portion of rejected documents grows faster for the single node cluster compared to the one with two data nodes. This means that even though we saw a similar level of partially rejected requests, the larger cluster had more documents indexed per request.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;앞에서 단일 node cluster와 2&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;node cluster&lt;/span&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;모두에서, 부분 거부가 거의 동시에 시작되는 것을 보았다. 이제 이러한 그래프를 살펴보면, data&amp;nbsp;node가 2개인 cluster에 비해 단일 node cluster에서 거부된 document 부분이&amp;nbsp;더 빨리 증가함을 알 수 있다. 즉, 유사한 수준의 부분적으로 거부된 request가&amp;nbsp;있었음에도 불구하고, 더 큰 cluster가 request당 더 많은 document를 indexing했다.&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Can’t I just get around this by increasing the bulk queue size?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;One of the most common reactions when faced with bulk rejections is to increase the size of the bulk queue. Why not set it to a really large value so you do not have to worry about this again?&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;bulk 거부에 직면했을 때 가장 일반적인 반응 중 하나는 bulk queue의 크기를 늘리는 것입니다. 이 값을 정말 큰 값으로 설정하면 더 이상 걱정할 필요가 없을까?&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Increasing the size of the queue is not likely to improve the indexing performance or throughput of your cluster. Instead it would just make the cluster queue up more data in memory, which is likely to result in bulk requests taking longer to complete. The more bulk requests there are in the queue, the more precious heap space will be consumed. If the pressure on the heap gets too large, it can cause a lot of other performance problems and even cluster instability.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;queue 크기를 늘린다고 해서 cluster의 indexing 성능이나 처리량이 향상되지는 않는다. 대신 cluster는 memory에서 더 많은 data가 queue에 추가되도록 하는 것뿐이라서, bulk request를 완료하는 더 많은 시간이 소요될 수 있다. queue에 bulk request가 많을수록 더 많은 귀중한 heap 공간이 사용된다. heap에 대한 압박이 너무 커지면 다른 많은 성능 문제가 발생하고 cluster가 불안정해질 수도 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Adjusting the queue sizes is therefore strongly discouraged, as it is like putting a temporary band-aid on the problem rather than actually fixing the underlying issue. So what else can we do improve the situation?&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;따라서 queue 크기를 조정하는 것은, 실제로 근본적인 문제를 해결하는 것이 아니라, 문제를 일시적으로 해결하는 것과 마찬가지로, 매우 바람직하지 않습니다. 그렇다면 우리가 이 상황을 개선할 수 있는 다른 방법은 무엇일까?&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;Can coordinating only nodes help?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;By introducing coordinating only nodes, the data nodes will be able to focus on processing sub-requests, as the request itself will not take up a slot on their bulk queue. This is generally good, but the actual benefit of this arrangement is likely to vary from use-case to use-case. In many use cases it does relatively little difference, and we see lots of successful indexing heavy use cases that do not use dedicated coordinating nodes.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;node만&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;하는 방식을 도입하면, data&amp;nbsp;node가 sub-request 처리에 집중할 수 있다. 즉, request 자체가 bulk&amp;nbsp;queue의 slot을 차지하지 않기 때문이다. 이는 일반적으로 좋지만, 이 방식의 실질적인 이점은 사용 사례에 따라 달라질 수 있다. 많은 사용 사례에서 비교적 차이가 거의 없으며, 전용&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;coordinating&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;node를 사용하지 않는 많은 성공적인 사용 사례를 볼 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;; font-weight: 400; line-height: 49px; margin: 0px 0px 21px; font-size: 32px; background-color: rgb(247, 247, 247);&quot;&gt;What conclusions can we draw?&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;As always, there is not necessarily any good one-size-fits-all solution, and the way to address bulk rejections will vary from use-case to use-case. If you see bulk rejections, try to understand why they are taking place and whether it is a single node or the whole cluster that is affected.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;언제나 그렇듯이, 반드시 좋은 만능 솔루션이 있는 것은 아니며, bulk 거부를 처리하는 방법은 사용 사례에 따라 달라질 수 있다. bulk 거부가 보이면, 왜 이러한 거부가 발생하고 있으며 단일 node인지 또는 영향을 받는 전체 cluster인지를 이해하려고 해 보자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;If the cluster is unable to cope with the load, ensure that all nodes are sharing the load evenly. If this does not help, it may be necessary to scale the cluster out or up. This will increase capacity and make it less likely that queues are filled up. Increasing the bulk queue size is only likely to postpone the problems, and may actually make them worse.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;cluster가 작업을&amp;nbsp;처리할 수 없는 경우, 모든 node가 작업을 균등하게 공유하고 있는지 확인하자. 이 방법이 도움이 되지 않는 경우, cluster의&amp;nbsp;scale-out 또는 scale-up이 필요할 수도 있다. 이렇게 하면 용량이 증가하고 queue이 채워질 가능성이 줄어든다. bulk queue 크기를 늘리는 것은 문제를 지연시킬 뿐이며 실제로 문제를 더 악화시킬 수도 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;Also remember that rejected requests do not always mean that all documents were unsuccessful. Make sure you inspect the full response and retry the appropriate documents. Logstash and Beats already do this by default.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;또한 거부된 request가 항상 모든 document가 성공하지 못했음을 의미하는 것은 아니다. 전체 response를 확인하고 해당 document를 다시 시도하자. Logstash와&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px;&quot;&gt;Beats&lt;/span&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;는 이미 기본적으로 이렇게 하고 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;We hope this has given you a better understand of how it works. If you have any further questions, there are&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/community&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;many ways to engage with us&lt;/a&gt;, including through&amp;nbsp;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(0, 169, 229); font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;our forum&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; background-color: rgb(247, 247, 247);&quot;&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;이 블로그 게시물이 bulk의 동작 방법을 이해하는데 있어 더 많은 도움이 되기를 바란다.&amp;nbsp;질문이 있다면, &lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;https://discuss.elastic.co/&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;forum&lt;/a&gt;&lt;font color=&quot;#444444&quot; face=&quot;Open Sans, arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;등의&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;a href=&quot;https://www.elastic.co/community&quot; style=&quot;color: rgb(0, 169, 229); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; font-size: 16px; box-sizing: border-box; background-color: transparent; font-weight: 600; outline: none; outline-offset: 0px;&quot;&gt;다양한 방법&lt;/a&gt;&lt;span style=&quot;font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;으로 우리에게 연락하기 바란다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: &amp;quot;Open Sans&amp;quot;, arial, helvetica, sans-serif;&quot;&gt;원문&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.elastic.co/blog/why-am-i-seeing-bulk-rejections-in-my-elasticsearch-cluster&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; outline: none; outline-offset: 0px; font-weight: bold;&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Why am I seeing bulk rejections in my Elasticsearch cluster?&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;참조 :&amp;nbsp;&lt;a href=&quot;http://drscg.tistory.com/288&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; outline: none; outline-offset: 0px; font-weight: bold;&quot;&gt;1-04. Distributed Document Store&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0px 0px 26px; font-size: 16px; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, &amp;quot;arial, helvetica, sans-serif&amp;quot;; background-color: rgb(247, 247, 247);&quot;&gt;참조 :&amp;nbsp;&lt;a href=&quot;http://drscg.tistory.com/289&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(0, 169, 229); box-sizing: border-box; outline: none; outline-offset: 0px; font-weight: bold;&quot;&gt;1-03-13. Cheaper in Bulk&lt;/a&gt;&lt;/p&gt;</description>
      <category>Blog</category>
      <category>429</category>
      <category>bulk</category>
      <category>concurrency</category>
      <category>coordinating</category>
      <category>Queue</category>
      <category>Rally</category>
      <category>rejection</category>
      <author>drscg</author>
      <guid isPermaLink="true">https://drscg.tistory.com/640</guid>
      <comments>https://drscg.tistory.com/640#entry640comment</comments>
      <pubDate>Mon, 7 Jan 2019 14:11:54 +0900</pubDate>
    </item>
  </channel>
</rss>