<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Daniel Rubinstein - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Daniel Rubinstein - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/kr/search-labs/author/daniel-rubinstein</link>
    </image>
    <link>https://www.elastic.co/kr/search-labs/author/daniel-rubinstein</link>
    <atom:link href="https://www.elastic.co/kr/search-labs/rss/author/daniel-rubinstein.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[kr]]></language>
    <lastBuildDate>Mon, 21 Sep 2026 02:40:18 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Elasticsearch에서 구조화된 문서에 대한 재귀 청크 구성하기]]></title>
    <description><![CDATA[최적의 구조화된 문서 색인을 위해 청크 크기, 구분자 그룹, 사용자 정의 구분자 목록을 사용하여 Elasticsearch에서 재귀적 청크를 구성하는 방법을 알아보세요.]]></description>
    <content:encoded><![CDATA[<p>8.16부터 사용자는 긴 문서를 의미론적 텍스트 필드로 수집할 때 사용되는 청킹 전략을 구성할 수 있습니다. 9.1 / 8.19 버전부터 정규식 목록을 사용하여 문서를 청크 처리하는 새로운 구성 가능한 재귀 청크 전략이 도입되었습니다. 청크의 목적은 긴 문서를 관련 콘텐츠를 캡슐화하는 섹션으로 분할하는 것입니다. 기존 전략은 단어/문장 단위로 텍스트를 분할하지만, 구조화된 형식으로 작성된 문서(예. 마크다운)에는 종종 일부 구분 문자열로 정의된 섹션 내에 관련 콘텐츠가 포함되어 있습니다(예 헤더). 이러한 유형의 문서에 대해 구조화된 문서의 형식을 활용하여 더 나은 청크를 만드는 재귀적 청크 전략을 소개합니다!</p><h2>재귀적 청킹이란 무엇인가요?</h2><p>재귀 청크는 패턴을 구분하는 제공된 섹션 목록을 반복하여 원하는 최대 청크 크기를 충족할 때까지 문서를 점진적으로 더 작은 세그먼트로 분할합니다.</p><h3>재귀 청킹은 어떻게 구성하나요?</h3><p>다음은 재귀 청킹을 위해 사용자가 설정할 수 있는 값입니다:</p><ul><li><p>(필수) <code>max_chunk_size</code>: 청크의 최대 단어 수입니다.</p></li><li><p>둘 중 하나입니다:</p><ul><li><p><code>separators</code>: 문서를 청크로 분할하는 데 사용할 정규식 문자열 패턴의 목록입니다.</p></li><li><p><code>separator_group</code>: 특정 유형의 문서에 사용하도록 Elastic에서 정의한 기본 구분 기호 목록에 매핑할 문자열입니다. 현재 <code>markdown</code> 및 <code>plaintext</code> 에서 사용할 수 있습니다.</p></li></ul></li></ul><h3>재귀 청크는 어떻게 작동하나요?</h3><p>입력 문서, <code>max_chunk_size</code> (단어로 측정), 구분 문자열 목록이 주어졌을 때 재귀 청킹을 수행하는 프로세스는 다음과 같습니다:</p><ol><li><p>입력 문서가 이미 최대 청크 크기 내에 있는 경우 전체 입력에 걸친 단일 청크를 반환합니다.</p></li><li><p>구분 기호의 발생 빈도에 따라 텍스트를 잠재적인 청크로 분할합니다. 각 잠재적 청크에 대해:</p><ol><li><p>잠재적 청크가 최대 청크 크기 이내인 경우 청크 목록에 추가하여 사용자에게 반환합니다.</p></li><li><p>그렇지 않으면 2단계부터 반복하여 잠재적 청크의 텍스트만 사용하고 목록의 다음 구분 기호를 사용하여 분할합니다. 더 이상 시도할 구분 기호가 남아 있지 않으면 문장 기반 청킹으로 돌아가세요.</p></li></ol></li></ol><h2>재귀 청킹 구성 예시</h2><p>청크 크기 외에도 재귀 청크의 주요 구성은 문서를 분할하는 데 사용할 구분 기호를 선택하는 것입니다. 어디서부터 시작해야 할지 잘 모르겠다면, Elasticsearch는 일반적인 사용 사례에 사용할 수 있는 몇 가지 기본 구분 기호 그룹을 제공합니다.</p><h3>구분 기호 그룹 활용</h3><p>구분 그룹을 사용하려면 청크 설정을 구성할 때 사용하려는 그룹의 이름을 입력하기만 하면 됩니다. 예를 들어</p>"chunking_settings": {
    "strategy": "recursive",
    "max_chunk_size": 25,
    "separator_group": "plaintext"
}<p>이렇게 하면 구분 기호 목록을 활용하는 재귀적 청크 전략이 제공됩니다 <code>["(?&lt;!\\n)\\n\\n(?!\\n)", "(?&lt;!\\n)\\n(?!\\n)")]</code>. 이 방법은 일반적인 일반 텍스트 애플리케이션에서 잘 작동하며, 두 줄로 분할한 다음 한 줄로 분할합니다.</p><p>또한 구분 기호 목록을 활용할 수 있는 구분 기호 그룹 <code>markdown</code> 을 제공합니다:</p>[
"\n# ",
       "\n## ",
       "\n### ",
       "\n#### ",
       "\n##### ",
       "\n###### ",
       "\n^(?!\\s*$).*\\n-{1,}\\n",
       "\n^(?!\\s*$).*\\n={1,}\\n"
]<p>이 구분 기호 목록은 일반적인 마크다운 사용 사례에 적합하며, 6개의 제목 수준과 섹션 구분 문자를 각각 분할할 수 있습니다.</p><p>리소스(추론 엔드포인트/시맨틱 텍스트 필드)를 만들 때 당시의 구분 기호 그룹에 해당하는 구분 기호 목록이 구성에 저장됩니다. 나중에 구분 기호 그룹이 업데이트되더라도 이미 생성된 리소스의 동작은 변경되지 않습니다.</p><h3>사용자 지정 구분 기호 목록 활용</h3><p>미리 정의된 구분 기호 그룹 중 하나가 사용 사례에 적합하지 않은 경우 필요에 맞는 사용자 지정 구분 기호 목록을 정의할 수 있습니다. 구분 기호 목록 내에 정규식을 입력할 수 있습니다. 다음은 사용자 지정 구분 기호로 구성된 청크 설정의 예입니다:</p>"chunking_settings": {
    "strategy": "recursive",
    "max_chunk_size": 25,
    "separators": ["\n\n", "\n", "&lt;my-custom-separator&gt;"]
}<p>위의 청크 전략은 2개의 줄 바꿈 문자, 1개의 줄 바꿈 문자, 마지막으로 문자열 <code>“&lt;my-custom-separator&gt;”</code> 로 분할됩니다.</p><h2>재귀 청크의 실제 사용 예시</h2><p>재귀 청크가 실제로 작동하는 예를 살펴보겠습니다. 이 예에서는 상위 두 개의 헤더 수준을 사용하여 마크다운 문서를 분할하는 사용자 지정 구분 기호 목록과 함께 다음 청크 설정을 사용합니다:</p>"chunking_settings": {
    "strategy": "recursive",
    "max_chunk_size": 25,
    "separators": ["\n# ", "\n## "]
}<p>청크가 없는 간단한 마크다운 문서를 살펴보겠습니다:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltdb5f41d1bd43ba50/6a17e831e9ea87c1d8a9c5f3/3a5507f4a1288065097231548e5b18e240508785-1302x1446.png" alt="청크되지 않은 마크다운 문서" /><p>이제 위에서 정의한 청킹 설정을 사용하여 문서를 청킹해 보겠습니다:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltfffda162c7b9c87a/6a17e83296142aefa8eb1b0b/a3313c4c40ff39b8dbcdd7c4878c723f088e6c1a-1600x1187.png" alt="Elasticsearch에서 문서 청크하기" /><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt96f65346a8e09e3a/6a17e834445de9157b4d015e/79a2921943191ea631df94c9d465818ec8d3e738-1600x1206.png" alt="두 번째 구분 기호로 분할하기 - Elasticsearch에서 문서 청크 분할하기" /><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt28381c8f85aedf07/6a17e836ec0f89801e5a6640/459e695cce7540267422396b9a62ff4ad35f61db-1600x1260.png" alt="Elasticsearch의 문장 기반 청크 처리 후 문서의 최종 청크" /><p>참고: 각 청크(청크 3 제외)의 끝에 있는 줄 바꿈은 강조 표시되지 않지만 실제 청크 경계 내에 포함됩니다.</p><h3>지금 바로 리커시브 청크를 시작하세요!</h3><p>이 기능을 활용하는 방법에 대한 자세한 내용은 청크 설정 구성에 대한 문서를 참조하세요.</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/recursive-chunking-structured-documents-elasticsearch</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/recursive-chunking-structured-documents-elasticsearch</guid>
    <category><![CDATA[기본]]></category>
    <category><![CDATA[Elastic 내부]]></category>
    <category><![CDATA[AI]]></category>
    <dc:creator><![CDATA[Daniel Rubinstein]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltf442dc4941f37be7/6a17e838505ac3eaf8ad8b3d/591872e31880768ca927507654a621addc0d124d-1600x960.png" length="0" type="image/png"/>
    <pubDate>Tue, 11 Nov 2025 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>