<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/</link><description>Recent content in Concepts on Advanced Beginner</description><generator>Hugo</generator><language>en-US</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Core Components</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/core-components/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/core-components/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: A group of servers providing high availability and distributed processing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Node&lt;/strong&gt;: A single Elasticsearch server in the cluster (Master, Data, Coordinating roles)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Index&lt;/strong&gt;: A logical collection of documents (similar to RDB table)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document&lt;/strong&gt;: A JSON data unit (similar to RDB row)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shard&lt;/strong&gt;: A horizontal partition of an index (consists of Primary/Replica)&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers new to Elasticsearch
&lt;strong&gt;Prerequisites&lt;/strong&gt;: JSON basics, REST API concepts&lt;/p&gt;
&lt;p&gt;Understand the roles and relationships of Elasticsearch&amp;rsquo;s core components: Cluster, Node, Index, Document, and Shard.&lt;/p&gt;</description></item><item><title>Data Modeling</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/data-modeling/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/data-modeling/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mapping&lt;/strong&gt;: Schema defining document structure (similar to RDB table definitions)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;text&lt;/strong&gt;: For full-text search, tokenized by Analyzer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;keyword&lt;/strong&gt;: For exact value matching, sorting/aggregation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyzer&lt;/strong&gt;: Converts text into searchable tokens (use Nori for Korean)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Denormalization&lt;/strong&gt;: Include related data in one document since there&amp;rsquo;s no JOIN&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers looking to use Elasticsearch search features
&lt;strong&gt;Prerequisites&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/core-components/"&gt;Core Components&lt;/a&gt;, basic JSON syntax&lt;/p&gt;
&lt;p&gt;This document covers Mapping, Field Type, and Analyzer design for effectively storing and searching data in Elasticsearch.&lt;/p&gt;</description></item><item><title>Query DSL</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/query-dsl/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/query-dsl/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query Context&lt;/strong&gt;: Full-text search that calculates relevance score&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filter Context&lt;/strong&gt;: Only checks conditions without score, cached for speed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;match/match_phrase&lt;/strong&gt;: Used for full-text search (text fields)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;term/terms/range&lt;/strong&gt;: Used for exact value search (keyword fields)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;bool&lt;/strong&gt;: Combines queries with must/should/must_not/filter&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who understand Elasticsearch basics
&lt;strong&gt;Prerequisites&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/core-components/"&gt;Core Components&lt;/a&gt;, JSON basics&lt;/p&gt;
&lt;p&gt;Learn how to write various search queries using Elasticsearch&amp;rsquo;s Query DSL (Domain Specific Language).&lt;/p&gt;
&lt;h2 id="basic-query-structure"&gt;Basic Query Structure&lt;a class="anchor" href="#basic-query-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;GET&lt;/span&gt; &lt;span class="err"&gt;/products/_search&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Search conditions
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Pagination offset
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;size&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Number of documents to return
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sort&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="c1"&gt;// Sorting
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nt"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;asc&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;_source&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;price&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;// Fields to return
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="query-context-vs-filter-context"&gt;Query Context vs Filter Context&lt;a class="anchor" href="#query-context-vs-filter-context"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Elasticsearch queries execute in two contexts.&lt;/p&gt;</description></item><item><title>Search Relevance</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/search-relevance/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/search-relevance/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;&lt;p&gt;Before reading this document, understand these concepts first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="query-dsl/"&gt;Query DSL&lt;/a&gt; - match, bool query basics&lt;/li&gt;
&lt;li&gt;&lt;a href="data-modeling/"&gt;Data Modeling&lt;/a&gt; - Analyzer operation principles&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Learn relevance tuning methods including Score, BM25, and Boosting to improve search result quality.&lt;/p&gt;
&lt;p&gt;The core value of a search engine is enabling users to find what they want &lt;strong&gt;on the first page&lt;/strong&gt;. No matter how quickly results are returned, if what users want is on page 10, it&amp;rsquo;s meaningless. Search Relevance is the key concept for solving this problem.&lt;/p&gt;</description></item><item><title>Aggregations</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/aggregations/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/aggregations/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;&lt;p&gt;Before reading this document, understand these concepts first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="query-dsl/"&gt;Query DSL&lt;/a&gt; - Basic query structure&lt;/li&gt;
&lt;li&gt;&lt;a href="data-modeling/"&gt;Data Modeling&lt;/a&gt; - keyword vs text types&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Learn how to analyze data and extract statistics using Elasticsearch Aggregations.&lt;/p&gt;
&lt;p&gt;While Elasticsearch is a search engine, it&amp;rsquo;s also a powerful &lt;strong&gt;real-time analytics engine&lt;/strong&gt;. When you search for &amp;ldquo;laptop&amp;rdquo; on an e-commerce site, the brand filters, price range filters, and rating distributions that appear on the left side are all results of Aggregations. Implementing these features with RDBMS would require complex subqueries and GROUP BY combinations, and performance issues would be severe with large datasets.&lt;/p&gt;</description></item><item><title>Indexing Strategy</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/indexing/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/indexing/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;&lt;p&gt;Before reading this document, understand these concepts first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="core-components/"&gt;Core Components&lt;/a&gt; - Shard, Segment concepts&lt;/li&gt;
&lt;li&gt;&lt;a href="data-modeling/"&gt;Data Modeling&lt;/a&gt; - Mapping, Analyzer basics&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Learn Bulk indexing, Refresh, and Index Lifecycle Management for efficiently storing large volumes of data.&lt;/p&gt;
&lt;p&gt;Elasticsearch indexing goes beyond simply storing data. When a document is indexed, it goes through a complex process including text analysis, inverted index creation, and segment management. Understanding this process reveals &lt;strong&gt;why Bulk indexing is 10x faster than single-document indexing&lt;/strong&gt;, &lt;strong&gt;why documents aren&amp;rsquo;t immediately searchable after indexing&lt;/strong&gt;, and &lt;strong&gt;why Refresh should be disabled during bulk indexing&lt;/strong&gt;. The right indexing strategy directly impacts system performance and operational costs.&lt;/p&gt;</description></item><item><title>Cluster Management</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/cluster-management/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/cluster-management/</guid><description>&lt;p&gt;Learn how to configure nodes, allocate shards, and monitor status in an Elasticsearch cluster.&lt;/p&gt;
&lt;p&gt;Elasticsearch was designed from the ground up as a &lt;strong&gt;distributed system&lt;/strong&gt;. Even when starting with a single node, it operates internally as a cluster. Thanks to this distributed architecture, you can scale horizontally by simply adding nodes as data grows, and the service can continue even when some nodes experience failures.&lt;/p&gt;
&lt;p&gt;However, distributed systems introduce different complexities than single servers. You need to understand role distribution among nodes, physical shard placement, master election processes, and behavior during network partitions to operate stably. In particular, &lt;strong&gt;incorrect Master node configuration can bring down the entire cluster&lt;/strong&gt;, and &lt;strong&gt;unbalanced shard placement can concentrate load on specific nodes&lt;/strong&gt;. This document covers core concepts and practical know-how for stable cluster operation.&lt;/p&gt;</description></item><item><title>Performance Tuning</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/performance-tuning/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/performance-tuning/</guid><description>&lt;p&gt;Learn how to optimize Elasticsearch search and indexing performance.&lt;/p&gt;
&lt;p&gt;While Elasticsearch provides fast search with default settings, production environments require tuning based on data scale and usage patterns. Default values are &amp;ldquo;generally acceptable,&amp;rdquo; not &amp;ldquo;optimal for all situations.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Performance tuning can be divided into four areas: &lt;strong&gt;Index Design&lt;/strong&gt;, &lt;strong&gt;Query Optimization&lt;/strong&gt;, &lt;strong&gt;Caching&lt;/strong&gt;, and &lt;strong&gt;System Settings&lt;/strong&gt;. Each area affects the others. For example, poor shard design cannot be solved by query optimization, and caching strategy depends on query patterns. Therefore, it&amp;rsquo;s effective to &lt;strong&gt;first identify where bottlenecks occur&lt;/strong&gt;, then focus on improving that specific area. This document covers key tuning points and practical considerations for each area.&lt;/p&gt;</description></item><item><title>High Availability</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/high-availability/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/high-availability/</guid><description>&lt;p&gt;Learn about Elasticsearch cluster Replica, Snapshot, and failure response strategies.&lt;/p&gt;
&lt;h2 id="high-availability-concepts"&gt;High Availability Concepts&lt;a class="anchor" href="#high-availability-concepts"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="ha-high-availability-goals"&gt;HA (High Availability) Goals&lt;a class="anchor" href="#ha-high-availability-goals"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Metric&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Target&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Availability&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Service uptime&lt;/td&gt;
 &lt;td&gt;99.9% (8.76 hours downtime/year)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Durability&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Data loss prevention&lt;/td&gt;
 &lt;td&gt;99.999999% (9-nines)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Recovery Time&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Failure to recovery&lt;/td&gt;
 &lt;td&gt;&amp;lt; 30 minutes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ha-components"&gt;HA Components&lt;a class="anchor" href="#ha-components"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;flowchart TB
 A[High Availability] --&amp;gt; B[Replica Shard]
 A --&amp;gt; C[Snapshot &amp;amp; Restore]
 A --&amp;gt; D[Cross-Cluster Replication]
 A --&amp;gt; E[Cluster Design]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="replica-shard"&gt;Replica Shard&lt;a class="anchor" href="#replica-shard"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="role"&gt;Role&lt;a class="anchor" href="#role"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 subgraph Node1
 P0[Primary 0]
 end
 subgraph Node2
 R0[Replica 0]
 end
 subgraph Node3
 P1[Primary 1]
 end

 P0 --&amp;gt;|Replication| R0
 Client --&amp;gt;|Write| P0
 Client --&amp;gt;|Read| R0&lt;/pre&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data Redundancy&lt;/strong&gt;: Replica is promoted when Primary fails&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Read Performance&lt;/strong&gt;: Search requests distributed&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="replica-configuration"&gt;Replica Configuration&lt;a class="anchor" href="#replica-configuration"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;PUT&lt;/span&gt; &lt;span class="err"&gt;/products&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;number_of_shards&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;number_of_replicas&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="dynamic-change"&gt;Dynamic Change&lt;a class="anchor" href="#dynamic-change"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;PUT&lt;/span&gt; &lt;span class="err"&gt;/products/_settings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;number_of_replicas&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="recommended-settings"&gt;Recommended Settings&lt;a class="anchor" href="#recommended-settings"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Environment&lt;/th&gt;
 &lt;th&gt;number_of_replicas&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Development&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Small Production&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Large/Critical Data&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="auto-expand-replicas"&gt;Auto-Expand Replicas&lt;a class="anchor" href="#auto-expand-replicas"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Automatically adjust based on node count:&lt;/p&gt;</description></item><item><title>Vector Search (kNN)</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/vector-search/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/vector-search/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vector Search&lt;/strong&gt;: Semantic-based search that finds similar content even with different keywords&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dense_vector&lt;/strong&gt;: Field type for storing vectors, specify similarity calculation method&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;kNN Query&lt;/strong&gt;: Search method to find k nearest neighbor documents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hybrid Search&lt;/strong&gt;: Combine kNN + keyword search for best results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embedding Model&lt;/strong&gt;: Converts text/images to vectors (multilingual models recommended for Korean)&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers implementing semantic search or recommendation systems
&lt;strong&gt;Prerequisites&lt;/strong&gt;: &lt;a href="https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/core-components/"&gt;Core Components&lt;/a&gt;, &lt;a href="https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/query-dsl/"&gt;Query DSL&lt;/a&gt;, Basic ML concepts&lt;/p&gt;
&lt;p&gt;Learn how to implement semantic search and similar image search using Elasticsearch&amp;rsquo;s vector search (kNN).&lt;/p&gt;</description></item><item><title>Korean Search Optimization</title><link>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/korean-search/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/elasticsearch/concepts/korean-search/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;&lt;p&gt;Before reading this document, understand these concepts first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="data-modeling/"&gt;Data Modeling&lt;/a&gt; - Analyzer, text vs keyword types&lt;/li&gt;
&lt;li&gt;&lt;a href="query-dsl/"&gt;Query DSL&lt;/a&gt; - match, multi_match queries&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;This document covers how to optimize Korean language search in Elasticsearch. We&amp;rsquo;ll implement the Nori analyzer, autocomplete, and initial consonant (chosung) search.&lt;/p&gt;
&lt;p&gt;Korean has fundamentally different linguistic characteristics from English, making proper search impossible with the default English analyzer. Searching &amp;ldquo;Samsung Electronics&amp;rdquo; (삼성전자) won&amp;rsquo;t find &amp;ldquo;Samsung Electronics Inc.&amp;rdquo; (삼성전자가) or &amp;ldquo;Samsung Electronics Co.&amp;rdquo; (삼성전자를), and it can&amp;rsquo;t extract &amp;ldquo;purchase&amp;rdquo; (구매) from &amp;ldquo;purchased&amp;rdquo; (구매했습니다). When users can&amp;rsquo;t find results they expect to find, they lose trust in the search service.&lt;/p&gt;</description></item></channel></rss>