> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# vector_search_* 세션 설정

> vector_search_* 생성된 그룹의 ClickHouse 세션 설정입니다.

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](/docs/ko/reference/system-tables/settings)에서 확인할 수 있으며 [소스](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)에서 자동 생성됩니다.

<div id="vector_search_filter_strategy">
  ## vector\_search\_filter\_strategy
</div>

<SettingsInfoBlock type="VectorSearchFilterStrategy" default_value="auto" />

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

벡터 검색 쿼리에 WHERE 절이 있는 경우, 이 설정은 이를 먼저 평가할지(프리필터링), 아니면 벡터 유사도 인덱스를 먼저 확인할지(포스트필터링)를 결정합니다. 가능한 값은 다음과 같습니다.

* 'auto' - 포스트필터링(정확한 동작 방식은 향후 변경될 수 있습니다).
* 'postfilter' - 벡터 유사도 인덱스를 사용해 최근접 이웃을 식별한 다음, 다른 필터를 적용합니다.
* 'prefilter' - 다른 필터를 먼저 평가한 다음, 브루트포스 검색을 수행해 이웃을 식별합니다.

<div id="vector_search_index_fetch_multiplier">
  ## vector\_search\_index\_fetch\_multiplier
</div>

**별칭**: `vector_search_postfilter_multiplier`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "설정 'vector_search_postfilter_multiplier'의 별칭"}]}]} />

벡터 유사도 인덱스에서 가져올 최근접 이웃 수에 이 값을 곱합니다. 다른 프레디케이트와 함께 사용하는 포스트필터링에만 적용되며, 설정 `vector_search_with_rescoring = 1`인 경우에도 적용됩니다. 유효 범위는 \[1.0, 1000.0]입니다. 이 범위를 벗어나는 값은 거부됩니다.

<div id="vector_search_use_quantized_codes">
  ## vector\_search\_use\_quantized\_codes
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Quantize(...) 컬럼 코덱에 대한 2단계 근사 벡터 검색 최적화를 사용하도록 설정하는 새로운 설정입니다. 기본적으로 쿼리는 정확하게 유지됩니다."}]}]} />

`Quantized`로 압축된 컬럼에 대해 인덱스 없이(브루트 포스 스캔) 2단계 근사 벡터 검색을 활성화합니다. 활성화하면 `Quantized(...)` 코덱으로 인코딩된 컬럼에서 `ORDER BY L2Distance|cosineDistance(vec, reference) LIMIT k`를 실행할 때 다음과 같이 동작합니다.

1. 양자화된 벡터를 스캔하고 필터링합니다(이 단계에서는 `k * vector_search_index_fetch_multiplier`개의 결과를 생성합니다).
2. 찾은 벡터를 원본 전체 정밀도 벡터와 다시 대조해 점수를 재계산합니다.

<div id="vector_search_with_rescoring">
  ## vector\_search\_with\_rescoring
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "새 설정입니다."}]}]} />

ClickHouse가 벡터 유사도 인덱스를 사용하는 쿼리에 대해 rescoring을 수행할지 여부를 지정합니다.
rescoring을 사용하지 않으면 벡터 유사도 인덱스가 가장 잘 일치하는 행을 직접 반환합니다.
rescoring을 사용하면 벡터 유사도 인덱스가 후보 행을 가져오고, ClickHouse가 일반 SQL 파이프라인에서
원본 전체 정밀도 벡터를 사용해 해당 행의 정확한 거리를 계산합니다.
가능한 경우 ClickHouse는 최종 거리 계산 전에 스캔을 후보 행으로 제한합니다.
더 나은 재현율을 위해 더 많은 후보 행이 필요하면, 특히
추가 필터 또는 양자화된 벡터 인덱스를 사용하는 경우 `vector_search_index_fetch_multiplier`를 늘리십시오.
참고: rescoring 없이 실행되고 병렬 레플리카가 활성화된 쿼리는 rescoring으로 폴백될 수 있습니다.
