fix(search): backport immense-term children mapping fix to 1.12.10#28572
Conversation
Backport of the flattened-children reindex fix from main (PR #28509). The recursive column/schema `children` field was mapped `flattened`, which caused Lucene's 32,766-byte per-term limit to fail document indexing for entities with large nested column expressions. Remap `children` from `flattened` to `object/enabled:false` across all affected indexes (table, container, dashboardDataModel, worksheet, topic, apiEndpoint, searchEntity) so the subtree is stored but never indexed. Also: - Replace dead `columns.children.name` / `dataModel.columns.children.name` search field references with `columnNamesFuzzy` in the 4 Java index classes - Remove stale children-field entries from the searchSettings.json seed - Add v11210 migration to scrub the same stale entries from DB-stored SearchSettings on upgrade (idempotent)
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
🟡 Playwright Results — all passed (31 flaky)✅ 3459 passed · ❌ 0 failed · 🟡 31 flaky · ⏭️ 97 skipped
🟡 31 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
…x files The backport was missing the om_analyzer declaration for columnNamesFuzzy in container, table, and dashboard_data_model across all 4 locales (en/jp/ru/zh). Without it the field falls back to dynamic text mapping with the default analyzer instead of om_analyzer, giving weaker tokenization than main. Adds the same 4-line block that the main PR (#28509) included.
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
…snapshot SearchSettings.spec.ts 'Restore default search settings' compares against the hardcoded snapshot in searchSettingUtils.ts. The field was removed from searchSettings.json seed but the snapshot wasn't updated, causing the test to fail (expected columns.children.name, received nothing).
❌ UI Checkstyle Failed❌ Playwright — ESLint + Prettier + Organise ImportsOne or more Playwright test files have linting or formatting issues. ❌ Core Components — ESLint + PrettierOne or more core-component files have linting or formatting issues. Fix locally (fast — only checks files changed in this branch): make ui-checkstyle-changed |
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
…backport Backport of SearchIndexNestedColumns.spec.ts from main PR #28509. Verifies that a 25-level-deep column with a >32 KB leaf expression indexes without an immense_term failure and is searchable by its deep column name via columnNamesFuzzy.
|
The Python checkstyle failed. Please run You can install the pre-commit hooks with |
Code Review ✅ ApprovedBackports the immense-term children mapping fix to 1.12.10 by transitioning field types to object/enabled:false and updating search mappings. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
Summary
Backport of main PR #28509 to the 1.12.10 release branch.
childrenfromflattened→object/enabled:falseacross all 7 affected index mappings (4 locales × 7 indexes). Theflattenedtype indexed every nested leaf as a keyword term; a leaf longer than Lucene's 32,766-byte limit (e.g. a large Looker/DAX expression) failed the whole document's reindex.object/enabled:falsestores the subtree in_sourcefor display but never indexes it.columns.children.name/dataModel.columns.children.namesearch field withcolumnNamesFuzzyinTableIndex,ContainerIndex,DashboardDataModelIndex,WorksheetIndex.*.childrenfield entries fromsearchSettings.json.SearchSettingson upgrade. Idempotent —removeIfon an already-clean list is a no-op, so clusters that later upgrade to 1.13.0 run the scrub again in v1130 safely.SearchIndexNestedColumns.spec.ts): Creates a 25-level-deep column with a >32 KB leaf expression, verifies the table indexes without animmense_termfailure, and confirms the deep column name is searchable viacolumnNamesFuzzy.What's NOT included
SearchIndexImmenseTermIT,FlattenedChildrenHighlightSearchIT)Test plan
immense_termfailure on a table/container with deeply nested columnscolumns.children.name/dataModel.columns.children.nameare absent from search settings after upgrade migration runsSearchIndexNestedColumns.spec.ts— 25-level oversized nested column indexes and is searchable by deep column name