> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# text_index_* 세션 설정

> text_index_* 생성 그룹에 대한 ClickHouse 세션 설정입니다.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["버전", "기본값", "설명"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        버전 이력
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

이 설정은 [system.settings](/ko/reference/system-tables/settings)에서 확인할 수 있으며, [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)를 기반으로 자동 생성됩니다.

<div id="text_index_hint_max_selectivity">
  ## text\_index\_hint\_max\_selectivity
</div>

<SettingsInfoBlock type="Float" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0.2"},{"label": "새로운 설정"}]}]} />

역텍스트 인덱스로 생성된 힌트를 사용하기 위한 필터의 최대 선택도입니다.

<div id="text_index_lazy_intersection_density_threshold">
  ## text\_index\_lazy\_intersection\_density\_threshold
</div>

**별칭**: `text_index_density_threshold`

<SettingsInfoBlock type="Float" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0.2"},{"label": "`text_index_density_threshold`에서 이름이 변경되었으며(별칭으로도 유지됨), 포스팅 리스트 지연 적용 모드에서 포스팅 리스트 교집합 알고리즘을 선택합니다."}]}]} />

포스팅 리스트 지연 적용 모드(`text_index_posting_list_apply_mode = 'lazy'`)에서 사용할 교집합 알고리즘을 선택하는 포스팅 리스트 밀도 임계값입니다.
임계값 미만: leapfrog 교집합(희소 포스팅 리스트에 유리). 임계값 이상: brute-force 비트맵 교집합(밀집 포스팅 리스트에 유리).

<div id="text_index_like_max_postings_to_read">
  ## text\_index\_like\_max\_postings\_to\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "50"},{"label": "새로운 설정"}]}]} />

딕셔너리 스캔을 사용한 텍스트 인덱스 LIKE 평가가 활성화된 경우 읽을 대형 postings의 최대 개수입니다.

`use_text_index_like_evaluation_by_dictionary_scan`가 활성화되어 있어야 합니다.

<div id="text_index_like_min_pattern_length">
  ## text\_index\_like\_min\_pattern\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "4"},{"label": "새로운 설정"}]}]} />

딕셔너리 스캔을 통한 텍스트 인덱스 LIKE 평가를 사용하려면 LIKE/ILIKE 패턴에 포함된 영숫자 검색 문자열의 최소 길이가 이 값 이상이어야 합니다.
이 임계값보다 짧은 패턴은 너무 많은 딕셔너리 토큰과 일치하므로, 비용이 큰 스캔을 방지하기 위해 건너뜁니다.

`use_text_index_like_evaluation_by_dictionary_scan`이 활성화되어 있어야 합니다.

<div id="text_index_posting_list_apply_mode">
  ## text\_index\_posting\_list\_apply\_mode
</div>

<SettingsInfoBlock type="TextIndexPostingListApplyMode" default_value="lazy" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "lazy"},{"label": "텍스트 인덱스 쿼리는 이제 포스팅 리스트를 Roaring Bitmap으로 구체화하는 대신 커서를 사용해 필요할 때 디코딩하므로, 선택적 쿼리의 메모리 사용량과 CPU 시간이 감소합니다."}]}, {"id": "row-2","items": [{"label": "26.6"},{"label": "materialize"},{"label": "포스팅 리스트 지연 적용 모드를 위한 새로운 설정"}]}]} />

텍스트 인덱스 쿼리에서 포스팅 리스트를 적용하는 방식을 제어합니다.
'materialize'는 포스팅 리스트를 Roaring Bitmap으로 즉시 디코딩합니다.
'lazy'는 커서 기반의 필요 시점 디코딩을 사용합니다(직렬화된 코덱이 있는 인덱스 포맷이 필요합니다).
'lazy'는 지원되는 경우에만 적용됩니다. 패턴(예: `LIKE`)이 있는 쿼리와 이전 버전에서 작성된 인덱스가 있는 파트는 'materialize'로 폴백됩니다.
