Skip to content

docs(adr): propose unified search index mapping#2662

Open
dschmidt wants to merge 1 commit intoopencloud-eu:mainfrom
dschmidt:docs/adr-reflection-based-search-mapping
Open

docs(adr): propose unified search index mapping#2662
dschmidt wants to merge 1 commit intoopencloud-eu:mainfrom
dschmidt:docs/adr-reflection-based-search-mapping

Conversation

@dschmidt
Copy link
Copy Markdown
Contributor

@dschmidt dschmidt commented Apr 23, 2026

📄 Rendered ADR: https://github.com/dschmidt/opencloud/blob/docs/adr-reflection-based-search-mapping/docs/adr/0005-unified-search-index-mapping.md


Proposes ADR 0005 — a single central Go-struct + overrides map as the source of truth for the search index layout across bleve and OpenSearch, so both backends stop drifting on implicit per-backend defaults and adding new index features (geopoint, case-preserving aggregation siblings, ...) becomes a one-line change in one place.

Also records the end-to-end case-handling principle for facet data (indexed as case-preserving keywords so aggregation buckets return correct display values) and the cross-backend sibling-field pattern that makes features like geopoint trivially uniform across bleve and OpenSearch.

#2659 is a proof-of-concept implementation this ADR emerged from; scope and APIs there will be revisited once the decision here lands.

Deciders TBD — please add reviewers who should sign off on the technical direction.

Propose a single central Go-struct + overrides map as the source of
truth for the search index layout across bleve and OpenSearch — the
same definition drives the per-backend index mapping, the write-time
adapter, the hit-decoding path, and the KQL compiler's case-folding
rules, so the two backends cannot drift silently again.

Also records the end-to-end case-handling principle for facet data
(indexed as case-preserving keywords so aggregation buckets return
correct display values), the sibling-field pattern for geopoint on
Location, and the rationale for replacing the two backends' implicit
defaults with an explicit, backend-agnostic contract.

PR opencloud-eu#2659 is a proof-of-concept implementation the proposal emerged
from; scope and APIs there will be revisited once this ADR lands.
@dschmidt dschmidt force-pushed the docs/adr-reflection-based-search-mapping branch from e94393b to 8954125 Compare April 27, 2026 07:44
@sonarqubecloud
Copy link
Copy Markdown

@dschmidt
Copy link
Copy Markdown
Contributor Author

Updated it to make it more focused :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant