This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new fe34b0e4b1a docs(i18n): machine Korean translation candidates (#4422)
fe34b0e4b1a is described below
commit fe34b0e4b1a845f1038066bf3c0330404a4dcdb2
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Wed Oct 21 06:38:28 2026 +0100
docs(i18n): machine Korean translation candidates (#4422)
## Korean translation candidate
Source commit: `97a17b9719dd55b7810a5d24f7b7630a0a52e7e4`
Model: `gpt-6-sol`; glossary: `1`
Review status: machine. Korean proofreading and the normal PR checks are
still required.
| Action | Version | English source | SHA-256 prefix | Generation |
| --- | --- | --- | --- | --- |
| update | current |
[`docs/table-design/index/inverted-index/search-function.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/docs/table-design/index/inverted-index/search-function.md)
| `39e1d99e4b82` | incremental (21.8%) |
| update | 4.x |
[`versioned_docs/version-4.x/table-design/index/inverted-index/search-function.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/versioned_docs/version-4.x/table-design/index/inverted-index/search-function.md)
| `655f64cd14d3` | incremental (21.8%) |
| translate_new | current |
[`docs/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/docs/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md)
| `822e48f9d0df` | full (no-previous-translation) |
| translate_new | 4.x |
[`versioned_docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/versioned_docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md)
| `822e48f9d0df` | copied from `T06-DEV-126050562679479` |
| translate_new | current |
[`docs/lakehouse/catalogs/lance-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/docs/lakehouse/catalogs/lance-catalog/doris-type-mapping.md)
| `353814c70055` | full (no-previous-translation) |
| translate_new | current |
[`docs/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/docs/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md)
| `603230759e63` | full (no-previous-translation) |
| translate_new | 4.x |
[`versioned_docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/versioned_docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md)
| `603230759e63` | copied from `T06-DEV-142848701142961` |
| translate_new | 4.x |
[`versioned_docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/versioned_docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md)
| `cf102ddfeaf2` | full (no-previous-translation) |
| translate_new | 4.x |
[`versioned_docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md`](https://github.com/apache/doris-website/blob/97a17b9719dd55b7810a5d24f7b7630a0a52e7e4/versioned_docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md)
| `1fbbe0a79144` | full (no-previous-translation) |
## Failed or skipped tasks
None.
## Candidates retained with warnings
None.
## Validation
Updates at or below 30% translate only changed Markdown/MDX blocks and
preserve other target blocks.
Change size is the sum of max(removed, added) non-empty English lines
per diff hunk, divided by the larger old/new line count.
New documents, larger updates, glossary changes or baselines that cannot
be aligned use full translation.
Generation uses at most three attempts per document. Deletions and
code-only updates may need no model call.
Each retry receives the earlier validation errors. Third-attempt content
issues are retained as warnings above.
Full attempt history and diagnostics are in generation.json and the page
state records.
Committed source hashes, managed paths and target/state hashes are
checked before applying candidates.
Master is checked before each model call and before publishing:
unrelated merges are allowed, a page changed on master is dropped, and a
translation configuration or tooling change discards the batch.
The publisher runs the shared PR translation-state, syntax and
internal-link checks before pushing.
The normal PR build and human proofreading are still required before
merging.
<!-- korean-translation-automation:v1
bot-head=1e098f8b672ae9c405323f024866bb4e6e5aeecc -->
Shared PR admission checks: passed (translation state, syntax, internal
links).
Co-authored-by: morningman <[email protected]>
---
.../catalogs/iceberg-catalog/doris-type-mapping.md | 45 +++++++
.../catalogs/lance-catalog/doris-type-mapping.md | 73 +++++++++++
.../catalogs/paimon-catalog/doris-type-mapping.md | 42 +++++++
.../index/inverted-index/search-function.md | 137 +++++++++++++++++++--
.../catalogs/hive-catalog/doris-type-mapping.md | 39 ++++++
.../catalogs/iceberg-catalog/doris-type-mapping.md | 45 +++++++
.../catalogs/lance-catalog/doris-type-mapping.md | 73 +++++++++++
.../catalogs/paimon-catalog/doris-type-mapping.md | 42 +++++++
.../index/inverted-index/search-function.md | 137 +++++++++++++++++++--
.../catalogs/hive-catalog/doris-type-mapping.json | 36 ++++++
.../iceberg-catalog/doris-type-mapping.json | 36 ++++++
.../catalogs/lance-catalog/doris-type-mapping.json | 36 ++++++
.../paimon-catalog/doris-type-mapping.json | 45 +++++++
.../index/inverted-index/search-function.json | 61 +++++----
.../iceberg-catalog/doris-type-mapping.json | 36 ++++++
.../catalogs/lance-catalog/doris-type-mapping.json | 36 ++++++
.../paimon-catalog/doris-type-mapping.json | 45 +++++++
.../index/inverted-index/search-function.json | 37 ++++--
18 files changed, 945 insertions(+), 56 deletions(-)
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..0ec97d9e306
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
@@ -0,0 +1,45 @@
+---
+{
+ "title": "Iceberg에서 Doris로의 데이터 타입 매핑",
+ "sidebar_label": "Doris 데이터 타입 매핑",
+ "description": "데이터 타입, 정밀도, 중첩 타입, 지원되지 않는 타입을 다루는 Doris 4.2 Iceberg 타입
매핑 참고 자료."
+}
+---
+
+다음 표는 Doris 4.2(`branch-4.2`)에서 Iceberg 외부 테이블 스키마를 읽을 때 적용하는 타입 매핑을 설명합니다.
쓰기는 대상 스키마와 지원되는 쓰기 작업의 영향도 받으므로, 읽기 매핑을 쓰기에 자동으로 역적용할 수는 없습니다.
+
+| Iceberg 타입 | Doris 타입 | 설명
|
+| -------------------------------------- | -------------------- |
--------------------------------------- |
+| boolean | boolean |
|
+| integer | int |
|
+| long | bigint |
|
+| float | float |
|
+| double | double |
|
+| decimal(P, S) | decimal(P, S) |
|
+| date | date |
|
+| timestamp (시간대 정보 없음) | datetime(6) | 정밀도가 6인 datetime으로 매핑됩니다.
|
+| timestamptz (시간대 정보 있음) | TIMESTAMPTZ(6) | 4.1.5부터 이 타입은 항상
`TIMESTAMPTZ(6)`으로 매핑됩니다. 정밀도가 6으로 제한되므로 그보다 높은 정밀도는 손실됩니다. |
+| fixed(N) | VARBINARY(N) | 4.1.5부터 고정 바이너리 길이가 유지됩니다. |
+| string | string |
|
+| binary | VARBINARY | 4.1.5부터 이 타입은 항상 `VARBINARY`로 매핑됩니다. |
+| uuid | UUID | 4.2에서는 네이티브 `UUID`로 매핑됩니다. Doris 4.1.5에서는 `VARBINARY(16)`으로
매핑됩니다. |
+| struct | struct (버전 2.1.3부터 지원) |
|
+| map | map (버전 2.1.3부터 지원) |
|
+| list | array |
|
+| timestamp_ns (시간대 정보 없음) | TIMESTAMP_NS | 세션 시간대 변환 없이 나노초 정밀도를 유지합니다. |
+| timestamptz_ns (시간대 정보 있음) | UNSUPPORTED | 시간대 정보를 포함하는 나노초 정밀도 타임스탬프는 지원되지
않습니다. |
+| time | UNSUPPORTED | Doris의 `TIME`으로 매핑되지 않습니다. |
+| variant | VARIANT | Iceberg V3 Variant입니다. 관련 BE가 Variant 읽기를 지원해야 합니다. |
+| other | UNSUPPORTED |
|
+
+## 사용 시 참고 사항 {#usage-notes}
+
+복합 타입의 하위 필드에도 동일한 매핑이 재귀적으로 적용됩니다. `TIMESTAMPTZ`는 세션의 `time_zone`에 따라 표시되는 특정
시점을 나타냅니다.
+
+`timestamp`와 `timestamptz`는 마이크로초 정밀도를 사용합니다. 시간대 정보가 없는 `timestamp_ns`만
`TIMESTAMP_NS`로 매핑됩니다. 표현 가능한 범위는 `1677-09-21 00:12:43.145224192`부터 `2262-04-11
23:47:16.854775807`까지이며, 이 범위를 벗어나는 값은 표현할 수 없습니다.
+
+`DESCRIBE table_name`에서 Extra 열의 `WITH_TIMEZONE`은 원본 필드에 시간대 정보가 있음을 나타냅니다.
+
+Iceberg UUID 필드에 Parquet 형식으로 쓸 때 중첩 필드를 포함한 모든 UUID 필드의 UUID 논리적 어노테이션이 유지됩니다.
+
+구현 참고 자료:
[IcebergUtils.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..27fe6ea0bb3
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
@@ -0,0 +1,73 @@
+---
+{
+ "title": "Lance에서 Doris로의 데이터 타입 매핑",
+ "sidebar_label": "Doris 데이터 타입 매핑",
+ "description": "데이터 타입, 정밀도, 중첩 타입, 지원되지 않는 타입을 다루는 Doris 4.2 Lance 타입 매핑
참고 자료입니다."
+}
+---
+
+다음 표는 Doris 4.2(`branch-4.2`)에서 Lance Catalog와 Lance 파일 TVF를 읽을 때 적용되는 타입 매핑을
설명합니다. Doris는 Lance에 쓰기를 지원하지 않습니다.
+
+| Lance / Arrow 타입 | Doris 타입 | 설명 |
+|---|---|---|
+| `null` (NULL 허용 필드) | `NULL` | 모든 값이 SQL NULL입니다. NULL을 허용하지 않는 Null 필드는
지원되지 않습니다. |
+| `duration(s/ms/us/ns)` | `BIGINT` | 선언된 단위의 부호 있는 값을 그대로 유지하며, 초 단위로 변환하지
않습니다. |
+| `bool` | `BOOLEAN` | |
+| `int8` | `TINYINT` | |
+| `uint8` | `SMALLINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int16` | `SMALLINT` | |
+| `uint16` | `INT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int32` | `INT` | |
+| `uint32` | `BIGINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int64` | `BIGINT` | |
+| `uint64` | `LARGEINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `float16` | `FLOAT` | 32비트 부동 소수점 값으로 확장됩니다. |
+| `float32` | `FLOAT` | |
+| `float64` | `DOUBLE` | |
+| `decimal128(P,S)` | `DECIMAL(P,S)` | 최대 정밀도는 38입니다. |
+| `decimal256(P,S)` | `DECIMAL(P,S)` | 최대 정밀도는 76입니다. |
+| `utf8`, `large_utf8` | `STRING` | |
+| `arrow.json` Extension | `JSON` | 저장 타입이 `utf8` 또는 `large_utf8`이어야 합니다. |
+| `lance.json` Extension | `JSON` | 저장 타입이 `large_binary`여야 하며, 논리적 JSON 타입으로
읽습니다. |
+| `lance.bfloat16` Extension | `FLOAT` | 저장 타입이 `fixed_size_binary(2)`여야 하며,
정밀도 손실 없이 Float32로 확장됩니다. |
+| `binary`, `large_binary` | `VARBINARY(2147483647)` | |
+| `fixed_size_binary(N)` | `VARBINARY(N)` | 고정 바이트 길이를 유지합니다. |
+| `date32(day)`, `date64(ms)` | `DATE` | `date64` 값은 온전한 역일을 나타내야 합니다. |
+| `time32(s)` | `TIME(0)` | |
+| `time32(ms)` | `TIME(3)` | |
+| `time64(us)`, `time64(ns)` | `TIME(6)` | 나노초 정밀도는 마이크로초 단위로 잘립니다. |
+| 시간대 정보가 없는 `timestamp(s)` | `DATETIME(0)` | Session Time Zone에 따라 변환되지 않습니다.
|
+| 시간대 정보가 없는 `timestamp(ms)` | `DATETIME(3)` | Session Time Zone에 따라 변환되지
않습니다. |
+| 시간대 정보가 없는 `timestamp(us)`, `timestamp(ns)` | `DATETIME(6)` | 나노초 정밀도는 마이크로초
단위로 잘립니다. |
+| 시간대 정보가 있는 `timestamp` | `TIMESTAMPTZ(P)` | 시점을 유지하고 Doris Session Time
Zone에 맞춰 표시합니다. |
+| `struct` | `STRUCT` | 자식 필드를 재귀적으로 매핑합니다. |
+| `list`, `large_list`, `fixed_size_list` | `ARRAY` | 요소 타입을 재귀적으로 매핑합니다. |
+| `map` | `MAP` | 키와 값의 타입을 재귀적으로 매핑합니다. |
+
+## 사용 시 참고 사항 {#usage-notes}
+
+타임스탬프 정밀도 `P`는 초 단위일 때 0, 밀리초 단위일 때 3, 마이크로초 또는 나노초 단위일 때 6입니다.
Iceberg/Paimon의 나노초 매핑과 달리 Lance의 나노초 타임스탬프는 여전히 `DATETIME(6)` 또는
`TIMESTAMPTZ(6)`에 매핑되며, 마이크로초 단위로 잘립니다. Decimal 타입은 `1 <= P <= 76` 및 `0 <= S <=
P`를 충족해야 하며, 음수 스케일은 지원되지 않습니다.
+
+Doris는 `ARROW:extension:name` 메타데이터를 통해 이러한 Extension을 인식하고 저장 타입을 검증합니다. JSON
Extension은 Doris의 `JSON`(내부적으로 `JSONB`)에 매핑됩니다. JSON 텍스트가 들어 있는 일반
`utf8`/`large_utf8` 컬럼도 `STRING`에 매핑되며, 내용에 따라 타입이 자동으로 바뀌지는 않습니다. JSON 읽기를
지원한다고 해서 임의의 JSON 경로 표현식이 푸시다운되는 것은 아닙니다. 지원되는 조건자 형태는 별도로 확인해야 합니다.
+
+JSON, Duration, Null, BFloat16을 읽으려면 FE와 해당 쿼리를 처리하는 BE 모두에서 각 타입을 지원해야 합니다.
이전 빌드에서는 이러한 타입이 지원되지 않는다고 보고될 수 있으므로, 업그레이드할 때 스키마 탐지와 실제 읽기 동작을 확인하세요.
+
+다음 타입은 현재 지원되지 않습니다.
+
+- NULL을 허용하지 않는 Arrow `null` 필드.
+- 지원 목록에 없는 Arrow/Lance Extension 타입(예: Lance Blob v2). 알려진 Extension이라도 저장
타입이 호환되지 않으면 지원되지 않습니다.
+- 자식 타입을 재귀적으로 매핑할 수 없는 복합 타입.
+- Dictionary 마커를 유지하는 Arrow Dictionary 타입.
+
+지원되지 않는 최상위 컬럼의 경우, Catalog 테이블에 대한 `DESC`와 Lance 파일 TVF에 대한 `DESC FUNCTION`
모두 해당 컬럼을 유지하고 `unknown type: UNSUPPORTED_TYPE`을 표시합니다. 복합 타입의 자식 중 하나라도 매핑할 수
없으면 최상위 복합 컬럼 전체가 지원되지 않는 것으로 표시됩니다. 쿼리에서는 지원되는 컬럼만 선택해 조회할 수 있습니다. SQL에서 지원되지
않는 컬럼을 선택하면 Doris는 분석 단계에서 오류를 보고합니다. 예를 들면 다음과 같습니다.
+
+```sql
+SELECT * EXCEPT(blob_col)
+FROM lance_catalog.default.all_types;
+```
+
+:::note
+일부 Lance Java SDK 버전은 Schema를 읽을 때 Dictionary 마커를 잃고 Dictionary 컬럼을 물리적 인덱스
타입으로 노출할 수 있습니다. 이 동작이 Doris가 논리적 Dictionary 값을 지원한다는 뜻은 아니며, 이 동작에 의존해서는 안 됩니다.
+:::
+
+구현 참고 자료:
[LanceTypeConverter.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/lance/metadata/LanceTypeConverter.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..765ed8ab334
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
@@ -0,0 +1,42 @@
+---
+{
+ "title": "Paimon에서 Doris로의 데이터 유형 매핑",
+ "sidebar_label": "Doris 데이터 유형 매핑",
+ "description": "데이터 유형, 정밀도, 중첩 유형 및 지원되지 않는 유형을 다루는 Doris 4.2의 Paimon 유형
매핑 참고 자료입니다."
+}
+---
+
+다음 표는 Doris 4.2 (`branch-4.2`)가 읽기 작업에서 Paimon 외부 테이블의 스키마를 매핑하는 방식을 설명합니다. 쓰기
작업은 대상 스키마와 지원되는 쓰기 작업에도 영향을 받으므로, 읽기 매핑을 쓰기 매핑의 자동 역변환으로 간주해서는 안 됩니다.
+
+| Paimon 유형 | Doris 유형 | 설명 |
+| ---------------------------------- | ------------- |
----------------------------------------------------------------------- |
+| boolean | boolean |
|
+| tinyint | tinyint |
|
+| smallint | smallint |
|
+| integer | int |
|
+| bigint | bigint |
|
+| float | float |
|
+| double | double |
|
+| decimal(P, S) | decimal(P, S) |
|
+| varchar(N) | VARCHAR(N) / STRING | `VARCHAR(N)`은 `N <= 65533`일 때 사용하고, 그 외에는
`STRING`을 사용합니다. |
+| char(N) | CHAR(N) / STRING | `CHAR(N)`은 `N <= 255`일 때 사용하고, 그 외에는 `STRING`을
사용합니다. |
+| binary(N), varbinary(N) | VARBINARY(N) | 선언된 바이트 길이를 유지합니다. |
+| date | date |
|
+| timestamp_without_time_zone(P) | DATETIME(P) / TIMESTAMP_NS | `DATETIME(P)`은
`P <= 6`일 때 사용합니다. 4.2에서는 `P > 6`이면 `TIMESTAMP_NS`로 매핑하여 마이크로초 미만의 정밀도를 유지합니다. |
+| timestamp\_with\_local\_time\_zone | TIMESTAMPTZ(N) | 4.1.5부터 이 유형은 항상
`TIMESTAMPTZ(N)`으로 매핑됩니다. 정밀도가 6으로 제한되므로 더 높은 정밀도는 손실됩니다. |
+| array | array |
|
+| map | map |
|
+| row | struct |
|
+| variant | VARIANT | 읽으려면 FE 설정 `enable_variant_v2=true`가 필요합니다. |
+| time_without_time_zone | UNSUPPORTED | |
+| other | UNSUPPORTED |
|
+
+## 사용 시 참고 사항 {#usage-notes}
+
+복합 유형의 하위 필드에도 동일한 매핑이 재귀적으로 적용됩니다. `TIMESTAMPTZ`는 세션 `time_zone`에 따라 표시되는 특정
시점을 나타냅니다.
+
+시간대가 없는 타임스탬프와 로컬 시간대가 적용된 타임스탬프는 정밀도 처리 방식이 다릅니다. 4.2는 전자의 나노초 정밀도를 유지할 수
있지만, 후자는 소수점 이하 여섯 자리로 제한됩니다. `TIMESTAMP_NS`의 범위는 `1677-09-21
00:12:43.145224192`부터 `2262-04-11 23:47:16.854775807`까지입니다.
+
+`DESCRIBE table_name`에서 Extra 열의 `WITH_TIMEZONE`은 원본 필드에 시간대 정보가 있음을 나타냅니다.
+
+구현 참고 자료:
[PaimonUtil.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md
b/i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md
index ffa4f773ce4..a412f41184a 100644
---
a/i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md
+++
b/i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md
@@ -42,7 +42,7 @@ SEARCH('<search_expression>', '<default_field>',
'<default_operator>')
**사용 시 참고 사항:**
- **위치**: `WHERE` 절에서 행 필터링에 참여하는 술어로 사용
-- **반환 타입**: BOOLEAN(매칭되면 TRUE)
+- **반환 타입**: NULL을 허용하지 않는 BOOLEAN(매칭되면 TRUE, 그렇지 않으면 FALSE)
`default_field`를 지정하면 Doris는 필드가 지정되지 않은 검색어나 함수를 해당 필드에 적용되도록 자동 확장합니다. 예를 들면
다음과 같습니다.
@@ -78,17 +78,134 @@ WHERE SEARCH('apple banana',
'{"default_field":"title","default_operator":"and","mode":"lucene"}');
```
-### NULL과 삼치 논리 {#null-and-three-valued-logic}
+### NULL과 이값 매칭 {#null-and-three-valued-logic}
-`SEARCH()`는 SQL 삼치 논리를 따릅니다.
+**버전:** 아래의 이값 매칭 규칙, NULL/NOT 예제, VARIANT 인덱스 오류 동작은 Doris 4.2부터 적용됩니다.
-- 매칭에 참여하는 모든 컬럼 값이 NULL이면 결과는 UNKNOWN입니다(`WHERE`에서 제외됨)
-- 다른 하위 표현식과 결합하면 불리언 단락 평가 규칙을 따릅니다. 예를 들면 다음과 같습니다.
- - `TRUE OR NULL = TRUE`
- - `FALSE OR NULL = NULL`
- - `NOT NULL = NULL`
+`SEARCH`는 NULL을 허용하지 않는 BOOLEAN을 반환합니다. 매칭되면 TRUE, 매칭되지 않으면 FALSE입니다. 일반 검색어는
NULL 값이나 스토리지에 존재하지 않는 것으로 확인된 VARIANT 경로와 매칭되지 않습니다. SEARCH는 UNKNOWN을 전파하지
않습니다.
-이 동작은 텍스트 검색 연산자와 일치합니다.
+standard 모드에서 `AND`는 매칭 집합의 교집합을, `OR`는 합집합을 구하며, `NOT`은 쿼리에서 볼 수 있는 행을 기준으로
여집합을 구합니다. 따라서 `SEARCH('NOT a:hit')`와 `NOT SEARCH('a:hit')` 모두 NULL인 행을 포함합니다.
Lucene 모드도 동일한 NULL/비매칭 규칙을 사용하지만, 아래에 설명된 자체 불리언 파싱 규칙은 그대로 적용됩니다. `score()`를
계산하거나 쿼리 캐시를 사용해도 전체 매칭 집합은 달라지지 않습니다. 정렬과 LIMIT는 반환되는 행을 바꿀 수 있습니다.
+
+일반적인 SQL 비교와 `MATCH` 연산자에는 SQL의 삼값 논리가 그대로 적용됩니다. 입력이 NULL이면 `a != 'hit'`와
`NOT (a MATCH_ANY 'hit')`는 UNKNOWN이므로 `WHERE`에서 필터링됩니다. 바깥쪽 SQL 표현식은 다른 NULL 허용
피연산자로 인해 여전히 UNKNOWN을 반환할 수 있습니다.
+
+#### 예제: NULL과 NOT
+
+CREATE, INSERT, SELECT 권한이 있는 데이터베이스에서 다음 예제를 실행하세요. 아래의 단일 버킷과 복제본은 작은 예제
테이블을 위한 설정입니다.
+
+```sql
+CREATE TABLE search_null_demo (
+ id INT,
+ a VARCHAR(16) NULL,
+ INDEX idx_a(a) USING INVERTED PROPERTIES("parser"="unicode")
+)
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES("replication_num"="1");
+
+INSERT INTO search_null_demo VALUES (1, 'hit'), (2, 'miss'), (3, NULL);
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+1
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE SEARCH('NOT a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+3
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE NOT SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+3
+```
+
+NULL인 행도 제외하려면 명시적인 `IS NOT NULL` 필터를 추가하세요:
+
+```sql
+SELECT id FROM search_null_demo
+WHERE a IS NOT NULL AND NOT SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+```
+
+이 세 행에 대해 SQL 조건 `a != 'hit'`와 텍스트 검색 조건 `NOT (a MATCH_ANY 'hit')`도 id가 2인 행만
반환합니다.
+
+#### VARIANT: NULL, 존재하지 않는 경로, 사용할 수 없는 인덱스
+
+`v.a:hit`와 같은 일반 VARIANT 검색어에도 동일한 규칙이 적용됩니다:
+
+| `v`에 기록된 값 | `v.a:hit` | `NOT v.a:hit` |
+| --- | --- | --- |
+| `{"a":"hit"}` | TRUE | FALSE |
+| `{"a":"miss"}` | FALSE | TRUE |
+| `{"a":null}` | FALSE | TRUE |
+| `{}` (경로 `a`가 없음) | FALSE | TRUE |
+| SQL NULL (VARIANT 열 전체가 NULL) | FALSE | TRUE |
+
+배열 외부에 저장된 객체에서는 JSON `null` 멤버가 제거되므로 해당 경로를 읽으면 멤버가 없는 경우와 마찬가지로 SQL NULL이
반환됩니다. 이는 표현식 내에서 계산된 JSON `null`과 다릅니다. [VARIANT의 NULL 의미
체계](../../../sql-manual/basic-element/sql-data-types/semi-structured/VARIANT.md#null-semantics)를
참조하세요.
+
+JSON 객체를 삽입할 때는 `parse_to_variant`를 사용하세요. 다음 테이블은 doc mode를 비활성화하여 예제에서 실행
가능한 인덱스가 있는 구체화된 하위 경로를 사용하도록 합니다.
+
+```sql
+CREATE TABLE search_variant_null_demo (
+ id INT,
+ v VARIANT<PROPERTIES("variant_enable_doc_mode"="false")>,
+ INDEX idx_v(v) USING INVERTED PROPERTIES("parser"="unicode")
+)
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES("replication_num"="1");
+
+INSERT INTO search_variant_null_demo VALUES
+ (1, parse_to_variant('{"a":"hit"}')),
+ (2, parse_to_variant('{"a":"miss"}')),
+ (3, parse_to_variant('{"a":null}')),
+ (4, parse_to_variant('{}')),
+ (5, NULL);
+```
+
+```sql
+SELECT id FROM search_variant_null_demo WHERE SEARCH('v.a:hit') ORDER BY id;
+```
+
+```text
+id
+1
+```
+
+```sql
+SELECT id FROM search_variant_null_demo WHERE SEARCH('NOT v.a:hit') ORDER BY
id;
+```
+
+```text
+id
+2
+3
+4
+5
+```
+
+`NOT SEARCH('v.a:hit')`도 동일한 id를 반환합니다. 모든 행에서 경로가 존재하지 않으면
`SEARCH('v.absent:hit')`는 행을 반환하지 않고 `SEARCH('NOT v.absent:hit')`는 다섯 행을 모두
반환합니다. 대상 경로의 값이 NULL이 아닌 행만 남기려면 SEARCH 바깥에 `v['a'] IS NOT NULL`을 추가하세요.
+
+**존재하지 않는 경로와 사용할 수 없는 인덱스는 서로 다른 상태입니다.** 경로에 데이터가 있지만 필요한 역인덱스를 실행할 수 없다면,
부정 쿼리에서도 SEARCH는 `SEARCH index unavailable for Variant field 'v.a'` 오류를 보고합니다.
예를 들어 CREATE INDEX 이후에도 인덱스가 구축되지 않은 과거 rowset이나, 실행 가능한 leaf 인덱스 없이 doc 스토리지에만
유지되는 경로가 이에 해당합니다. SEARCH는 이러한 상태를 빈 매칭 집합으로 취급하거나 자동으로 스캔으로 전환하지 않습니다. 조회 대상인
모든 데이터에 필요한 경로 인덱스가 있는지 확인하거나, 추출한 경로를 일반 SQL로 쿼리하세요.
## 시나리오별 SEARCH 사용법 {#using-search-by-scenario}
@@ -184,7 +301,7 @@ Lucene 모드는 Elasticsearch/Lucene의 query_string 동작을 에뮬레이션
- AND/OR/NOT은 인접한 검색어에 영향을 주는 수정자입니다
- 연산자 우선순위는 왼쪽에서 오른쪽으로 적용됩니다
- 내부적으로 MUST/SHOULD/MUST_NOT을 사용합니다(Lucene의 Occur 열거형과 유사)
-- NOT만으로 구성된 쿼리는 빈 결과를 반환합니다(긍정 절이 필요함)
+- NOT만으로 구성된 쿼리는 전체 매칭 조건을 추가하고 매칭되는 행을 제외합니다
**Lucene 모드 활성화:**
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..2583b9cd07b
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md
@@ -0,0 +1,39 @@
+---
+{
+ "title": "Hive에서 Doris로 데이터 타입 매핑",
+ "sidebar_label": "Doris 데이터 타입 매핑",
+ "description": "데이터 타입, 정밀도, 중첩 타입, 지원되지 않는 타입을 다루는 Doris 4.2 Hive 타입 매핑
참조 문서."
+}
+---
+
+다음 표는 Doris 4.2 (`branch-4.2`)가 읽기 시 Hive 외부 테이블 스키마를 어떻게 매핑하는지 설명합니다. 쓰기는 대상
스키마와 지원되는 쓰기 작업에도 영향을 받습니다. 읽기 매핑을 쓰기에 그대로 역으로 적용할 수는 없습니다.
+
+| Hive 타입 | Doris 타입 | 설명 |
+| ------------- | ------------- |
---------------------------------------------- |
+| boolean | boolean |
|
+| tinyint | tinyint |
|
+| smallint | smallint |
|
+| int | int |
|
+| bigint | bigint |
|
+| date | date |
|
+| timestamp | datetime(6) | 정밀도 6의 datetime으로 매핑됩니다. |
+| float | float |
|
+| double | double |
|
+| decimal(P, S) | decimal(P, S) | 정밀도를 지정하지 않으면 기본값은 decimal(9, 0)입니다. |
+| char(N) | char(N) |
|
+| varchar(N) | varchar(N) |
|
+| string | string |
|
+| binary | VARBINARY | 4.1.5부터 이 타입은 항상 `VARBINARY`로 매핑됩니다. |
+| timestamp with local time zone | TIMESTAMPTZ(6) | 4.1.5부터 이 타입은 항상
`TIMESTAMPTZ(6)`으로 매핑됩니다. 정밀도는 최대 6으로 제한되므로 더 높은 정밀도는 손실됩니다. |
+| array | array |
|
+| map | map |
|
+| struct | struct |
|
+| other | unsupported |
|
+
+## 사용 시 참고 사항 {#usage-notes}
+
+복합 타입의 하위 필드에도 동일한 매핑을 재귀적으로 적용합니다. `TIMESTAMPTZ`는 세션의 `time_zone`에 따라 표시되는 특정
시점을 나타냅니다.
+
+Hive Catalog는 Hive Metastore의 타입 문자열에서 스키마를 도출합니다. `timestamp`는
`DATETIME(6)`으로 매핑됩니다. 기반 파일에 나노초 단위 데이터가 있어도 매핑이 자동으로 `TIMESTAMP_NS`로 바뀌지는
않습니다. `uniontype`을 비롯해 지원되는 타입으로 명시되지 않은 타입은 지원되지 않습니다.
+
+구현 참조:
[HiveMetaStoreClientHelper.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..0ec97d9e306
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md
@@ -0,0 +1,45 @@
+---
+{
+ "title": "Iceberg에서 Doris로의 데이터 타입 매핑",
+ "sidebar_label": "Doris 데이터 타입 매핑",
+ "description": "데이터 타입, 정밀도, 중첩 타입, 지원되지 않는 타입을 다루는 Doris 4.2 Iceberg 타입
매핑 참고 자료."
+}
+---
+
+다음 표는 Doris 4.2(`branch-4.2`)에서 Iceberg 외부 테이블 스키마를 읽을 때 적용하는 타입 매핑을 설명합니다.
쓰기는 대상 스키마와 지원되는 쓰기 작업의 영향도 받으므로, 읽기 매핑을 쓰기에 자동으로 역적용할 수는 없습니다.
+
+| Iceberg 타입 | Doris 타입 | 설명
|
+| -------------------------------------- | -------------------- |
--------------------------------------- |
+| boolean | boolean |
|
+| integer | int |
|
+| long | bigint |
|
+| float | float |
|
+| double | double |
|
+| decimal(P, S) | decimal(P, S) |
|
+| date | date |
|
+| timestamp (시간대 정보 없음) | datetime(6) | 정밀도가 6인 datetime으로 매핑됩니다.
|
+| timestamptz (시간대 정보 있음) | TIMESTAMPTZ(6) | 4.1.5부터 이 타입은 항상
`TIMESTAMPTZ(6)`으로 매핑됩니다. 정밀도가 6으로 제한되므로 그보다 높은 정밀도는 손실됩니다. |
+| fixed(N) | VARBINARY(N) | 4.1.5부터 고정 바이너리 길이가 유지됩니다. |
+| string | string |
|
+| binary | VARBINARY | 4.1.5부터 이 타입은 항상 `VARBINARY`로 매핑됩니다. |
+| uuid | UUID | 4.2에서는 네이티브 `UUID`로 매핑됩니다. Doris 4.1.5에서는 `VARBINARY(16)`으로
매핑됩니다. |
+| struct | struct (버전 2.1.3부터 지원) |
|
+| map | map (버전 2.1.3부터 지원) |
|
+| list | array |
|
+| timestamp_ns (시간대 정보 없음) | TIMESTAMP_NS | 세션 시간대 변환 없이 나노초 정밀도를 유지합니다. |
+| timestamptz_ns (시간대 정보 있음) | UNSUPPORTED | 시간대 정보를 포함하는 나노초 정밀도 타임스탬프는 지원되지
않습니다. |
+| time | UNSUPPORTED | Doris의 `TIME`으로 매핑되지 않습니다. |
+| variant | VARIANT | Iceberg V3 Variant입니다. 관련 BE가 Variant 읽기를 지원해야 합니다. |
+| other | UNSUPPORTED |
|
+
+## 사용 시 참고 사항 {#usage-notes}
+
+복합 타입의 하위 필드에도 동일한 매핑이 재귀적으로 적용됩니다. `TIMESTAMPTZ`는 세션의 `time_zone`에 따라 표시되는 특정
시점을 나타냅니다.
+
+`timestamp`와 `timestamptz`는 마이크로초 정밀도를 사용합니다. 시간대 정보가 없는 `timestamp_ns`만
`TIMESTAMP_NS`로 매핑됩니다. 표현 가능한 범위는 `1677-09-21 00:12:43.145224192`부터 `2262-04-11
23:47:16.854775807`까지이며, 이 범위를 벗어나는 값은 표현할 수 없습니다.
+
+`DESCRIBE table_name`에서 Extra 열의 `WITH_TIMEZONE`은 원본 필드에 시간대 정보가 있음을 나타냅니다.
+
+Iceberg UUID 필드에 Parquet 형식으로 쓸 때 중첩 필드를 포함한 모든 UUID 필드의 UUID 논리적 어노테이션이 유지됩니다.
+
+구현 참고 자료:
[IcebergUtils.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..972282dc7dd
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md
@@ -0,0 +1,73 @@
+---
+{
+ "title": "Lance와 Doris 간 데이터 유형 매핑",
+ "sidebar_label": "Doris 데이터 유형 매핑",
+ "description": "데이터 유형, 정밀도, 중첩 유형, 지원되지 않는 유형을 다루는 Doris 4.2의 Lance 유형 매핑
참고 자료."
+}
+---
+
+다음 표는 Doris 4.2(`branch-4.2`)의 Lance Catalog와 Lance 파일 TVF에서 데이터를 읽을 때 적용되는 유형
매핑을 설명합니다. Doris는 Lance에 데이터 쓰기를 지원하지 않습니다.
+
+| Lance / Arrow 유형 | Doris 유형 | 설명 |
+|---|---|---|
+| `null` (NULL을 허용하는 필드) | `NULL` | 모든 값이 SQL NULL이며, NULL을 허용하지 않는 Null 필드는
지원되지 않음 |
+| `duration(s/ms/us/ns)` | `BIGINT` | 선언된 단위의 부호 있는 값을 그대로 유지하며, 초 단위로 변환하지 않음
|
+| `bool` | `BOOLEAN` | |
+| `int8` | `TINYINT` | |
+| `uint8` | `SMALLINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int16` | `SMALLINT` | |
+| `uint16` | `INT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int32` | `INT` | |
+| `uint32` | `BIGINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `int64` | `BIGINT` | |
+| `uint64` | `LARGEINT` | 정보 손실 없이 확장된 부호 없는 정수 |
+| `float16` | `FLOAT` | 32비트 부동 소수점 값으로 확장됨 |
+| `float32` | `FLOAT` | |
+| `float64` | `DOUBLE` | |
+| `decimal128(P,S)` | `DECIMAL(P,S)` | 최대 정밀도는 38 |
+| `decimal256(P,S)` | `DECIMAL(P,S)` | 최대 정밀도는 76 |
+| `utf8`, `large_utf8` | `STRING` | |
+| `arrow.json` Extension | `JSON` | 저장 유형이 `utf8` 또는 `large_utf8`이어야 함 |
+| `lance.json` Extension | `JSON` | 저장 유형이 `large_binary`여야 하며, 논리적 JSON 유형으로
읽음 |
+| `lance.bfloat16` Extension | `FLOAT` | 저장 유형이 `fixed_size_binary(2)`여야 하며,
정밀도 손실 없이 Float32로 확장됨 |
+| `binary`, `large_binary` | `VARBINARY(2147483647)` | |
+| `fixed_size_binary(N)` | `VARBINARY(N)` | 고정 바이트 너비를 유지함 |
+| `date32(day)`, `date64(ms)` | `DATE` | `date64` 값은 온전한 역일을 나타내야 함 |
+| `time32(s)` | `TIME(0)` | |
+| `time32(ms)` | `TIME(3)` | |
+| `time64(us)`, `time64(ns)` | `TIME(6)` | 나노초 정밀도는 마이크로초 단위로 잘림 |
+| 시간대 정보가 없는 `timestamp(s)` | `DATETIME(0)` | Session Time Zone에 따라 변환되지 않음 |
+| 시간대 정보가 없는 `timestamp(ms)` | `DATETIME(3)` | Session Time Zone에 따라 변환되지 않음 |
+| 시간대 정보가 없는 `timestamp(us)`, `timestamp(ns)` | `DATETIME(6)` | 나노초 정밀도는 마이크로초
단위로 잘림 |
+| 시간대 정보가 있는 `timestamp` | `TIMESTAMPTZ(P)` | 시점을 유지하고 Doris Session Time
Zone에 맞춰 표시함 |
+| `struct` | `STRUCT` | 하위 필드의 유형이 재귀적으로 매핑됨 |
+| `list`, `large_list`, `fixed_size_list` | `ARRAY` | 요소 유형이 재귀적으로 매핑됨 |
+| `map` | `MAP` | 키와 값의 유형이 재귀적으로 매핑됨 |
+
+## 사용 참고 사항 {#usage-notes}
+
+타임스탬프 정밀도 `P`는 초 단위일 때 0, 밀리초 단위일 때 3, 마이크로초 또는 나노초 단위일 때 6입니다.
Iceberg/Paimon의 나노초 매핑과 달리, Lance의 나노초 타임스탬프는 여전히 `DATETIME(6)` 또는
`TIMESTAMPTZ(6)`으로 매핑되며 마이크로초 단위로 잘립니다. Decimal에는 `1 <= P <= 76` 및 `0 <= S <=
P` 조건이 적용되며, 음수 스케일은 지원되지 않습니다.
+
+Doris는 `ARROW:extension:name` 메타데이터를 통해 이러한 Extension을 인식하고 저장 유형을 검증합니다. JSON
Extension은 Doris의 `JSON`(내부적으로는 `JSONB`)으로 매핑됩니다. JSON 텍스트가 들어 있는 일반
`utf8`/`large_utf8` 컬럼은 여전히 `STRING`으로 매핑되며, 내용에 따라 유형이 자동으로 바뀌지 않습니다. JSON 읽기
지원이 임의의 JSON 경로 표현식에 대한 푸시다운까지 의미하지는 않습니다. 지원 범위는 [조건자
푸시다운](../lance-catalog.mdx#predicate-pushdown)을 참조하세요.
+
+JSON, Duration, Null, BFloat16을 읽으려면 FE와 쿼리를 처리하는 BE 모두에서 해당 유형을 지원해야 합니다. 이전
빌드에서는 이러한 유형이 지원되지 않는다고 보고할 수 있으므로, 업그레이드할 때 스키마 검색과 실제 데이터 읽기를 확인하세요.
+
+현재 다음 유형은 지원되지 않습니다.
+
+- NULL을 허용하지 않는 Arrow `null` 필드.
+- 지원 유형으로 나열되지 않은 Arrow/Lance Extension 유형(예: Lance Blob v2). 저장 유형이 호환되지 않는
알려진 Extension도 지원되지 않습니다.
+- 하위 유형을 재귀적으로 매핑할 수 없는 복합 유형.
+- Dictionary 마커가 유지된 Arrow Dictionary 유형.
+
+지원되지 않는 최상위 컬럼의 경우, Catalog 테이블에 대한 `DESC`와 Lance 파일 TVF에 대한 `DESC FUNCTION`은
모두 해당 컬럼을 유지하고 `unknown type: UNSUPPORTED_TYPE`으로 표시합니다. 복합 유형의 하위 유형 중 하나라도
매핑할 수 없으면 최상위 복합 컬럼 전체가 지원되지 않는 것으로 표시됩니다. 이 경우에도 쿼리에서 지원되는 컬럼만 선택할 수 있습니다.
SQL에서 지원되지 않는 컬럼을 선택하면 Doris는 분석 단계에서 오류를 보고합니다. 예를 들면 다음과 같습니다.
+
+```sql
+SELECT * EXCEPT(blob_col)
+FROM lance_catalog.default.all_types;
+```
+
+:::note
+일부 Lance Java SDK 버전에서는 Schema를 읽을 때 Dictionary 마커가 사라져 Dictionary 컬럼을 물리적 인덱스
유형으로 노출할 수 있습니다. 이 동작이 Doris가 논리적 Dictionary 값을 지원한다는 뜻은 아니므로, 이에 의존해서는 안 됩니다.
+:::
+
+구현 참고 자료:
[LanceTypeConverter.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/lance/metadata/LanceTypeConverter.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
new file mode 100644
index 00000000000..765ed8ab334
--- /dev/null
+++
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md
@@ -0,0 +1,42 @@
+---
+{
+ "title": "Paimon에서 Doris로의 데이터 유형 매핑",
+ "sidebar_label": "Doris 데이터 유형 매핑",
+ "description": "데이터 유형, 정밀도, 중첩 유형 및 지원되지 않는 유형을 다루는 Doris 4.2의 Paimon 유형
매핑 참고 자료입니다."
+}
+---
+
+다음 표는 Doris 4.2 (`branch-4.2`)가 읽기 작업에서 Paimon 외부 테이블의 스키마를 매핑하는 방식을 설명합니다. 쓰기
작업은 대상 스키마와 지원되는 쓰기 작업에도 영향을 받으므로, 읽기 매핑을 쓰기 매핑의 자동 역변환으로 간주해서는 안 됩니다.
+
+| Paimon 유형 | Doris 유형 | 설명 |
+| ---------------------------------- | ------------- |
----------------------------------------------------------------------- |
+| boolean | boolean |
|
+| tinyint | tinyint |
|
+| smallint | smallint |
|
+| integer | int |
|
+| bigint | bigint |
|
+| float | float |
|
+| double | double |
|
+| decimal(P, S) | decimal(P, S) |
|
+| varchar(N) | VARCHAR(N) / STRING | `VARCHAR(N)`은 `N <= 65533`일 때 사용하고, 그 외에는
`STRING`을 사용합니다. |
+| char(N) | CHAR(N) / STRING | `CHAR(N)`은 `N <= 255`일 때 사용하고, 그 외에는 `STRING`을
사용합니다. |
+| binary(N), varbinary(N) | VARBINARY(N) | 선언된 바이트 길이를 유지합니다. |
+| date | date |
|
+| timestamp_without_time_zone(P) | DATETIME(P) / TIMESTAMP_NS | `DATETIME(P)`은
`P <= 6`일 때 사용합니다. 4.2에서는 `P > 6`이면 `TIMESTAMP_NS`로 매핑하여 마이크로초 미만의 정밀도를 유지합니다. |
+| timestamp\_with\_local\_time\_zone | TIMESTAMPTZ(N) | 4.1.5부터 이 유형은 항상
`TIMESTAMPTZ(N)`으로 매핑됩니다. 정밀도가 6으로 제한되므로 더 높은 정밀도는 손실됩니다. |
+| array | array |
|
+| map | map |
|
+| row | struct |
|
+| variant | VARIANT | 읽으려면 FE 설정 `enable_variant_v2=true`가 필요합니다. |
+| time_without_time_zone | UNSUPPORTED | |
+| other | UNSUPPORTED |
|
+
+## 사용 시 참고 사항 {#usage-notes}
+
+복합 유형의 하위 필드에도 동일한 매핑이 재귀적으로 적용됩니다. `TIMESTAMPTZ`는 세션 `time_zone`에 따라 표시되는 특정
시점을 나타냅니다.
+
+시간대가 없는 타임스탬프와 로컬 시간대가 적용된 타임스탬프는 정밀도 처리 방식이 다릅니다. 4.2는 전자의 나노초 정밀도를 유지할 수
있지만, 후자는 소수점 이하 여섯 자리로 제한됩니다. `TIMESTAMP_NS`의 범위는 `1677-09-21
00:12:43.145224192`부터 `2262-04-11 23:47:16.854775807`까지입니다.
+
+`DESCRIBE table_name`에서 Extra 열의 `WITH_TIMEZONE`은 원본 필드에 시간대 정보가 있음을 나타냅니다.
+
+구현 참고 자료:
[PaimonUtil.java](https://github.com/apache/doris/blob/bcaaa5f293674f1adba0dfa52c8f8f57fb5e9549/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java)
(`branch-4.2`).
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/table-design/index/inverted-index/search-function.md
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/table-design/index/inverted-index/search-function.md
index ffa4f773ce4..40b6f876a9e 100644
---
a/i18n/ko/docusaurus-plugin-content-docs/version-4.x/table-design/index/inverted-index/search-function.md
+++
b/i18n/ko/docusaurus-plugin-content-docs/version-4.x/table-design/index/inverted-index/search-function.md
@@ -42,7 +42,7 @@ SEARCH('<search_expression>', '<default_field>',
'<default_operator>')
**사용 시 참고 사항:**
- **위치**: `WHERE` 절에서 행 필터링에 참여하는 술어로 사용
-- **반환 타입**: BOOLEAN(매칭되면 TRUE)
+- **반환 타입**: NULL을 허용하지 않는 BOOLEAN(매칭되면 TRUE, 그렇지 않으면 FALSE; Doris 4.2부터 적용)
`default_field`를 지정하면 Doris는 필드가 지정되지 않은 검색어나 함수를 해당 필드에 적용되도록 자동 확장합니다. 예를 들면
다음과 같습니다.
@@ -78,17 +78,134 @@ WHERE SEARCH('apple banana',
'{"default_field":"title","default_operator":"and","mode":"lucene"}');
```
-### NULL과 삼치 논리 {#null-and-three-valued-logic}
+### NULL과 두 값 매칭 {#null-and-three-valued-logic}
-`SEARCH()`는 SQL 삼치 논리를 따릅니다.
+**버전:** 아래의 두 값 매칭 규칙, NULL/NOT 예제, VARIANT 인덱스 오류 동작은 Doris 4.2부터 적용됩니다.
-- 매칭에 참여하는 모든 컬럼 값이 NULL이면 결과는 UNKNOWN입니다(`WHERE`에서 제외됨)
-- 다른 하위 표현식과 결합하면 불리언 단락 평가 규칙을 따릅니다. 예를 들면 다음과 같습니다.
- - `TRUE OR NULL = TRUE`
- - `FALSE OR NULL = NULL`
- - `NOT NULL = NULL`
+`SEARCH`는 NULL을 허용하지 않는 BOOLEAN을 반환합니다. 매칭되면 TRUE, 매칭되지 않으면 FALSE를 반환합니다. 일반
검색어는 NULL 값이나 저장소에 존재하지 않는 것으로 확인된 VARIANT 경로와 매칭되지 않습니다. SEARCH는 UNKNOWN을 전파하지
않습니다.
-이 동작은 텍스트 검색 연산자와 일치합니다.
+standard 모드에서 `AND`는 매칭 집합의 교집합을, `OR`는 합집합을 구하며, `NOT`은 쿼리에서 볼 수 있는 행을 기준으로
여집합을 구합니다. 따라서 `SEARCH('NOT a:hit')`와 `NOT SEARCH('a:hit')` 모두 NULL 행을 포함합니다.
Lucene 모드도 동일한 NULL 및 비매칭 규칙을 사용하지만, 아래에 설명한 자체 Boolean 파싱 규칙은 유지합니다.
`score()`를 계산하거나 쿼리 캐시를 사용해도 전체 매칭 집합은 바뀌지 않습니다. 정렬과 LIMIT은 반환되는 행을 바꿀 수 있습니다.
+
+일반 SQL 비교 연산과 `MATCH` 연산자는 SQL의 세 값 논리를 따릅니다. 입력이 NULL이면 `a != 'hit'`와 `NOT (a
MATCH_ANY 'hit')`의 결과는 UNKNOWN이며 `WHERE`에서 걸러집니다. 바깥쪽 SQL 표현식은 다른 NULL 허용 피연산자로
인해 여전히 UNKNOWN을 반환할 수 있습니다.
+
+#### 예제: NULL과 NOT
+
+CREATE, INSERT, SELECT 권한이 있는 데이터베이스에서 다음 예제를 실행하세요. 아래의 단일 버킷과 복제본은 작은 예제
테이블을 위한 것입니다.
+
+```sql
+CREATE TABLE search_null_demo (
+ id INT,
+ a VARCHAR(16) NULL,
+ INDEX idx_a(a) USING INVERTED PROPERTIES("parser"="unicode")
+)
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES("replication_num"="1");
+
+INSERT INTO search_null_demo VALUES (1, 'hit'), (2, 'miss'), (3, NULL);
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+1
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE SEARCH('NOT a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+3
+```
+
+```sql
+SELECT id FROM search_null_demo WHERE NOT SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+3
+```
+
+NULL 행도 제외하려면 `IS NOT NULL` 필터를 명시적으로 추가하세요:
+
+```sql
+SELECT id FROM search_null_demo
+WHERE a IS NOT NULL AND NOT SEARCH('a:hit') ORDER BY id;
+```
+
+```text
+id
+2
+```
+
+이 세 행에 대해 SQL 조건 `a != 'hit'`와 텍스트 검색 조건 `NOT (a MATCH_ANY 'hit')`도 id 2만
반환합니다.
+
+#### VARIANT: NULL, 누락된 경로, 사용할 수 없는 인덱스
+
+`v.a:hit` 같은 일반 VARIANT 검색어에도 동일한 규칙이 적용됩니다:
+
+| `v`에 기록된 값 | `v.a:hit` | `NOT v.a:hit` |
+| --- | --- | --- |
+| `{"a":"hit"}` | TRUE | FALSE |
+| `{"a":"miss"}` | FALSE | TRUE |
+| `{"a":null}` | FALSE | TRUE |
+| `{}` (경로 `a`가 없음) | FALSE | TRUE |
+| SQL NULL (VARIANT 컬럼 전체가 NULL) | FALSE | TRUE |
+
+배열 외부에 저장된 객체에서는 JSON `null` 멤버가 제거되므로 해당 경로를 읽으면 누락된 멤버와 마찬가지로 SQL NULL이
반환됩니다. 이는 표현식 안에서 계산된 JSON `null`과 다릅니다. 자세한 내용은 [VARIANT
가이드](../../../sql-manual/basic-element/sql-data-types/semi-structured/VARIANT.md)를
참조하세요.
+
+JSON 객체를 삽입할 때는 `parse_to_variant`를 사용하세요. 다음 테이블은 예제에서 실행 가능한 인덱스가 있는 구체화된 하위
경로를 사용하도록 doc 모드를 비활성화합니다.
+
+```sql
+CREATE TABLE search_variant_null_demo (
+ id INT,
+ v VARIANT<PROPERTIES("variant_enable_doc_mode"="false")>,
+ INDEX idx_v(v) USING INVERTED PROPERTIES("parser"="unicode")
+)
+DUPLICATE KEY(id)
+DISTRIBUTED BY HASH(id) BUCKETS 1
+PROPERTIES("replication_num"="1");
+
+INSERT INTO search_variant_null_demo VALUES
+ (1, parse_to_variant('{"a":"hit"}')),
+ (2, parse_to_variant('{"a":"miss"}')),
+ (3, parse_to_variant('{"a":null}')),
+ (4, parse_to_variant('{}')),
+ (5, NULL);
+```
+
+```sql
+SELECT id FROM search_variant_null_demo WHERE SEARCH('v.a:hit') ORDER BY id;
+```
+
+```text
+id
+1
+```
+
+```sql
+SELECT id FROM search_variant_null_demo WHERE SEARCH('NOT v.a:hit') ORDER BY
id;
+```
+
+```text
+id
+2
+3
+4
+5
+```
+
+`NOT SEARCH('v.a:hit')`도 동일한 id를 반환합니다. 모든 행에 경로가 없으면
`SEARCH('v.absent:hit')`는 행을 반환하지 않고 `SEARCH('NOT v.absent:hit')`는 다섯 행을 모두
반환합니다. 대상 경로의 값이 NULL이 아닌 행만 남기려면 SEARCH 바깥에 `v['a'] IS NOT NULL`을 추가하세요.
+
+**누락된 경로와 사용할 수 없는 인덱스는 서로 다른 상태입니다.** 경로에 데이터가 있지만 필요한 역인덱스를 실행할 수 없는 경우, 부정
쿼리를 포함해 SEARCH는 `SEARCH index unavailable for Variant field 'v.a'` 오류를 보고합니다.
예를 들어 CREATE INDEX 이후에도 인덱스가 아직 구축되지 않은 이전 rowset이나, 실행 가능한 리프 인덱스 없이 doc 저장소에만
유지된 경로가 이에 해당합니다. SEARCH는 이러한 상태를 빈 매칭 집합으로 취급하거나 자동으로 스캔으로 전환하지 않습니다. 조회하는 모든
데이터에 필요한 경로 인덱스를 사용할 수 있도록 하거나, 추출한 경로를 일반 SQL로 조회하세요.
## 시나리오별 SEARCH 사용법 {#using-search-by-scenario}
@@ -184,7 +301,7 @@ Lucene 모드는 Elasticsearch/Lucene의 query_string 동작을 에뮬레이션
- AND/OR/NOT은 인접한 검색어에 영향을 주는 수정자입니다
- 연산자 우선순위는 왼쪽에서 오른쪽으로 적용됩니다
- 내부적으로 MUST/SHOULD/MUST_NOT을 사용합니다(Lucene의 Occur 열거형과 유사)
-- NOT만으로 구성된 쿼리는 빈 결과를 반환합니다(긍정 절이 필요함)
+- NOT만으로 구성된 쿼리는 전체 매칭 조건을 추가한 뒤 매칭되는 행을 제외합니다
**Lucene 모드 활성화:**
diff --git
a/translations/state/ko/pages/default/4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..c1590dbc732
--- /dev/null
+++
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.json
@@ -0,0 +1,36 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "4.x",
+ "docId": "lakehouse/catalogs/hive-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"versioned_docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/hive-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"cf102ddfeaf2c88817c3b16a1db1387e7a3e148a5f034fe282dfc6ef156b0d66",
+ "sourceTechnicalHash":
"748b106e7178b222ca8093abc016e385cf8bfe94fd0bae4937ed127f129ffffc",
+ "targetHash":
"c9ace4abc421106ddbadc5165959d21a04de3ea9a04db28b7c67777c45de1bb6",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:36:17.776Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 1,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"cf102ddfeaf2c88817c3b16a1db1387e7a3e148a5f034fe282dfc6ef156b0d66",
+ "targetHash":
"c9ace4abc421106ddbadc5165959d21a04de3ea9a04db28b7c67777c45de1bb6",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..92e2bec549f
--- /dev/null
+++
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
@@ -0,0 +1,36 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "4.x",
+ "docId": "lakehouse/catalogs/iceberg-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"versioned_docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"822e48f9d0dfeccc17ccba8ed13e5160b7fa938bab886b22fedf1012bb425ce5",
+ "sourceTechnicalHash":
"5dcc328ca46d280ec36e87e1b72a9019fa1a408b38c910eee470350ebcc6b245",
+ "targetHash":
"da1e8a9b089011989687e9c726fa0a005df223d2c22621fbf99c42a884679fb8",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:34:29.562Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 1,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"822e48f9d0dfeccc17ccba8ed13e5160b7fa938bab886b22fedf1012bb425ce5",
+ "targetHash":
"da1e8a9b089011989687e9c726fa0a005df223d2c22621fbf99c42a884679fb8",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..d2aaaa80aec
--- /dev/null
+++
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
@@ -0,0 +1,36 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "4.x",
+ "docId": "lakehouse/catalogs/lance-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"versioned_docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/lance-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"1fbbe0a79144fbaef8440eb6f1c0b854626823935b70f45cef7ea2ea31d2c13b",
+ "sourceTechnicalHash":
"f21d2f4bf6249ffada5d1be95691cd196a984b09b13897f5e190827d7d79fc7f",
+ "targetHash":
"6ea4df33d7e06350eeb34e3df1737f18e44a91788ad403bccf2df27ff4c6a59e",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:36:52.919Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 1,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"1fbbe0a79144fbaef8440eb6f1c0b854626823935b70f45cef7ea2ea31d2c13b",
+ "targetHash":
"6ea4df33d7e06350eeb34e3df1737f18e44a91788ad403bccf2df27ff4c6a59e",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..01922c11a46
--- /dev/null
+++
b/translations/state/ko/pages/default/4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
@@ -0,0 +1,45 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "4.x",
+ "docId": "lakehouse/catalogs/paimon-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"versioned_docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/version-4.x/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"603230759e638480b6dc920c5d0c9771bae6bf89f4e81b67051a8153bbf7cb67",
+ "sourceTechnicalHash":
"328a5855fbc029abcf25bbbf7ae6b29136b3d07a67c13f444313ca807133bbba",
+ "targetHash":
"b2526a0cf55ae199bc5241b4a3475295628a66cce3b66e90b86a9115ae718435",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:35:56.363Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 2,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"603230759e638480b6dc920c5d0c9771bae6bf89f4e81b67051a8153bbf7cb67",
+ "targetHash":
"b2526a0cf55ae199bc5241b4a3475295628a66cce3b66e90b86a9115ae718435",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nnumeric values:
expected [\"4.1.5\",\"4.2\",\"4.2\",\"4.2\",\"6\"]; received
[\"4.1.5\",\"4.2\",\"4.2\",\"4.2\",\"6\",\"6\"]\nprotected node 2: expected
[\"inlineCode\",null,null,\"VARCHAR(N)\"]; received
[\"inlineCode\",null,null,\"N <= 65533\"]\nprotected node 3: expected
[\"inlineCode\",null,null,\"N <= 65533\"]; received
[\"inlineCode\",null,null,\"VARCHAR(N)\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 2,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/4.x/table-design/index/inverted-index/search-function.json
b/translations/state/ko/pages/default/4.x/table-design/index/inverted-index/search-function.json
index 001302e36b0..39e6fc76336 100644
---
a/translations/state/ko/pages/default/4.x/table-design/index/inverted-index/search-function.json
+++
b/translations/state/ko/pages/default/4.x/table-design/index/inverted-index/search-function.json
@@ -8,43 +8,54 @@
"sourceLocale": "en",
"sourcePath":
"versioned_docs/version-4.x/table-design/index/inverted-index/search-function.md",
"targetPath":
"i18n/ko/docusaurus-plugin-content-docs/version-4.x/table-design/index/inverted-index/search-function.md",
- "sourceCommit": "f1464d3fb0dd6007d36104a970c3bc7db282d822",
- "sourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
- "sourceTechnicalHash":
"a2e70293f9b783f927af715d56d640c92eefb2e59e15e6a31217ec413c4ae4dc",
- "targetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"655f64cd14d3cb8ca34a68521ebc81c8f4e6de5b3d1d13d81a3837e286a5cfac",
+ "sourceTechnicalHash":
"e881c7730f7c5fa6fc3f784e955975f7c13f2e84b1aba154a0dfa36bcc2dc4ae",
+ "targetHash":
"7393b1fc856fb8580c5c549af44f6fc1d0977b0db076a38990fdfab7d85cb747",
"reviewStatus": "machine",
"ownership": "machine",
- "translatedAt": "2026-10-19T15:13:42.055Z",
+ "translatedAt": "2026-10-21T04:34:08.457Z",
"glossaryVersion": "1",
"generation": {
"policy": "whole-document-v1",
- "mode": "copy",
- "reason": "cross-version-copy",
- "attempts": 1,
- "modelCalls": 0,
+ "previousSourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
+ "previousTargetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "mode": "incremental",
+ "reason": "source-change-within-30-percent",
+ "sourceChange": {
+ "changedLines": 99,
+ "totalLines": 454,
+ "ratio": 0.21806167400881057
+ },
+ "attempts": 3,
"acceptedWithWarnings": false,
- "sourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
- "targetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "sourceHash":
"655f64cd14d3cb8ca34a68521ebc81c8f4e6de5b3d1d13d81a3837e286a5cfac",
+ "targetHash":
"7393b1fc856fb8580c5c549af44f6fc1d0977b0db076a38990fdfab7d85cb747",
"warnings": [],
"history": [
{
"attempt": 1,
- "operation": "copy",
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nnumeric values:
expected
[\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"];
received
[\"1\",\"1\",\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 2,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nnumeric values:
expected
[\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"];
received
[\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 3,
"issues": []
}
- ],
- "reusedFrom": {
- "origin": "published",
- "version": "current",
- "docId": "table-design/index/inverted-index/search-function",
- "sourcePath":
"docs/table-design/index/inverted-index/search-function.md",
- "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md",
- "sourceCommit": "f1464d3fb0dd6007d36104a970c3bc7db282d822",
- "sourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
- "targetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
- "commit": "c5b54b1cd03719e14c660f23a1ea79359c00d843",
- "pr": "https://github.com/apache/doris-website/pull/4387"
- }
+ ]
}
}
}
diff --git
a/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..457433faf4c
--- /dev/null
+++
b/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.json
@@ -0,0 +1,36 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "current",
+ "docId": "lakehouse/catalogs/iceberg-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"docs/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"822e48f9d0dfeccc17ccba8ed13e5160b7fa938bab886b22fedf1012bb425ce5",
+ "sourceTechnicalHash":
"5dcc328ca46d280ec36e87e1b72a9019fa1a408b38c910eee470350ebcc6b245",
+ "targetHash":
"da1e8a9b089011989687e9c726fa0a005df223d2c22621fbf99c42a884679fb8",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:34:29.562Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 1,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"822e48f9d0dfeccc17ccba8ed13e5160b7fa938bab886b22fedf1012bb425ce5",
+ "targetHash":
"da1e8a9b089011989687e9c726fa0a005df223d2c22621fbf99c42a884679fb8",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..acf40df7a07
--- /dev/null
+++
b/translations/state/ko/pages/default/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.json
@@ -0,0 +1,36 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "current",
+ "docId": "lakehouse/catalogs/lance-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"docs/lakehouse/catalogs/lance-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/lance-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"353814c70055c53fa9d1f469c0d4ddc66314f2ef1e7882cf13eac4df5ebfbb48",
+ "sourceTechnicalHash":
"e3dc5a220b36eed7e8ebab8e0a08ecc3338c2b0ecb6c6027519af00113384f15",
+ "targetHash":
"ed624622151ed4126d8e17c58e9783726ec180467cfdbacee78d3011e39b983a",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:35:03.437Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 1,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"353814c70055c53fa9d1f469c0d4ddc66314f2ef1e7882cf13eac4df5ebfbb48",
+ "targetHash":
"ed624622151ed4126d8e17c58e9783726ec180467cfdbacee78d3011e39b983a",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
b/translations/state/ko/pages/default/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
new file mode 100644
index 00000000000..0b25d06db1f
--- /dev/null
+++
b/translations/state/ko/pages/default/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.json
@@ -0,0 +1,45 @@
+{
+ "schemaVersion": 1,
+ "page": {
+ "pluginId": "default",
+ "version": "current",
+ "docId": "lakehouse/catalogs/paimon-catalog/doris-type-mapping",
+ "locale": "ko",
+ "sourceLocale": "en",
+ "sourcePath":
"docs/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md",
+ "targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/paimon-catalog/doris-type-mapping.md",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"603230759e638480b6dc920c5d0c9771bae6bf89f4e81b67051a8153bbf7cb67",
+ "sourceTechnicalHash":
"328a5855fbc029abcf25bbbf7ae6b29136b3d07a67c13f444313ca807133bbba",
+ "targetHash":
"b2526a0cf55ae199bc5241b4a3475295628a66cce3b66e90b86a9115ae718435",
+ "reviewStatus": "machine",
+ "ownership": "machine",
+ "translatedAt": "2026-10-21T04:35:56.363Z",
+ "glossaryVersion": "1",
+ "generation": {
+ "policy": "whole-document-v1",
+ "mode": "full",
+ "reason": "no-previous-translation",
+ "attempts": 2,
+ "acceptedWithWarnings": false,
+ "sourceHash":
"603230759e638480b6dc920c5d0c9771bae6bf89f4e81b67051a8153bbf7cb67",
+ "targetHash":
"b2526a0cf55ae199bc5241b4a3475295628a66cce3b66e90b86a9115ae718435",
+ "warnings": [],
+ "history": [
+ {
+ "attempt": 1,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nnumeric values:
expected [\"4.1.5\",\"4.2\",\"4.2\",\"4.2\",\"6\"]; received
[\"4.1.5\",\"4.2\",\"4.2\",\"4.2\",\"6\",\"6\"]\nprotected node 2: expected
[\"inlineCode\",null,null,\"VARCHAR(N)\"]; received
[\"inlineCode\",null,null,\"N <= 65533\"]\nprotected node 3: expected
[\"inlineCode\",null,null,\"N <= 65533\"]; received
[\"inlineCode\",null,null,\"VARCHAR(N)\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 2,
+ "issues": []
+ }
+ ]
+ }
+ }
+}
diff --git
a/translations/state/ko/pages/default/current/table-design/index/inverted-index/search-function.json
b/translations/state/ko/pages/default/current/table-design/index/inverted-index/search-function.json
index 60fd4eabec3..657849da88f 100644
---
a/translations/state/ko/pages/default/current/table-design/index/inverted-index/search-function.json
+++
b/translations/state/ko/pages/default/current/table-design/index/inverted-index/search-function.json
@@ -8,27 +8,42 @@
"sourceLocale": "en",
"sourcePath": "docs/table-design/index/inverted-index/search-function.md",
"targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/table-design/index/inverted-index/search-function.md",
- "sourceCommit": "f1464d3fb0dd6007d36104a970c3bc7db282d822",
- "sourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
- "sourceTechnicalHash":
"a2e70293f9b783f927af715d56d640c92eefb2e59e15e6a31217ec413c4ae4dc",
- "targetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "sourceCommit": "97a17b9719dd55b7810a5d24f7b7630a0a52e7e4",
+ "sourceHash":
"39e1d99e4b8260a70c58a9075d39baffc3ddefa3bcbfe1fcef32005b7ae1943d",
+ "sourceTechnicalHash":
"97e160e9e7b4e13c408f9d4ad6f27113ca41fa443512a73609c20d209718bb1f",
+ "targetHash":
"64e1a4fba5de89de42e41df2faebe2998e19cb0d24b9e46ceb302afac4516be6",
"reviewStatus": "machine",
"ownership": "machine",
- "translatedAt": "2026-10-19T08:03:31.481Z",
+ "translatedAt": "2026-10-21T04:32:56.901Z",
"glossaryVersion": "1",
"generation": {
"policy": "whole-document-v1",
- "mode": "full",
- "reason": "local-t09-batch",
- "attempts": 1,
- "modelCalls": 1,
+ "previousSourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
+ "previousTargetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "mode": "incremental",
+ "reason": "source-change-within-30-percent",
+ "sourceChange": {
+ "changedLines": 99,
+ "totalLines": 454,
+ "ratio": 0.21806167400881057
+ },
+ "attempts": 2,
"acceptedWithWarnings": false,
- "sourceHash":
"cca0a8ce074f648ce8180d9a98982b3f549fc21615655d1d54072e5c098f256c",
- "targetHash":
"6c60a4d7eecc3043c99019843d7dc25f96b94612efc15f1d44b05834657c4c7a",
+ "sourceHash":
"39e1d99e4b8260a70c58a9075d39baffc3ddefa3bcbfe1fcef32005b7ae1943d",
+ "targetHash":
"64e1a4fba5de89de42e41df2faebe2998e19cb0d24b9e46ceb302afac4516be6",
"warnings": [],
"history": [
{
"attempt": 1,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nnumeric values:
expected
[\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"];
received
[\"1\",\"1\",\"1\",\"1\",\"10\",\"11\",\"12\",\"2\",\"2\",\"3\",\"4\",\"4.0\",\"4.1.0\",\"4.2\",\"5\",\"6\",\"7\",\"8\",\"9\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 2,
"issues": []
}
]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]