Logo
NeoArc Studio

Property Projections

Configure how model properties appear in persistence, search, API, and custom downstream contexts using opt-in projections.

Projections define how a model property appears in different downstream contexts. Each property on a model entity supports four projection types: persistence, search, API, and custom. Every projection is opt-in, meaning its absence indicates that the property is not included in that context.

Projection Types Overview

The four projection types serve distinct purposes in the data pipeline.

Persistence
Controls how the property maps to a database column or document field in the storage layer.
Search
Governs indexing behaviours, analysers, vector configuration, and field type mappings for search engines.
API
Determines whether the property appears in API responses and requests, with optional field name overrides.
Custom
Stores arbitrary key-value metadata for bespoke downstream consumers.

Projection Comparison

The following table summarises the configuration options available on each projection type.

ProjectionKey FieldsUse Case
Persistenceincluded, columnNameMap properties to database columns or document fields
Searchincluded, searchBehaviours, analyzer, boost, fieldName, dimensions, vectorSearchProfileConfigure search engine indexing and query behaviour
APIincluded, fieldName, readOnlyControl API request and response field exposure
Customincluded, metadataAttach arbitrary key-value pairs for bespoke consumers

Persistence Projection

The persistence projection controls how a property maps to the underlying data store. It has two configuration options.

PropertyTypeDescription
includedbooleanWhether the property is included in the persistence layer
columnNamestring (optional)Override the column or field name in the target store; defaults to the property name if omitted
{
  "persistence": {
    "included": true,
    "columnName": "customer_email"
  }
}

Search Projection

The search projection is the most detailed projection type. It controls how a property is indexed, queried, and ranked by the search engine.

Core Settings

PropertyTypeDescription
includedbooleanWhether the property is included in the search index
fieldNamestring (optional)Override the field name in the search index
keyboolean (optional)Mark this field as the document key
boostnumber (optional)Relevance boost factor for scoring
analyzerstring (optional)Analyser applied to both indexing and querying
indexAnalyzerstring (optional)Analyser applied during indexing only
searchAnalyzerstring (optional)Analyser applied during querying only
normalizerstring (optional)Normaliser for keyword-style fields
synonymMapstring (optional)Synonym map reference for query expansion

Search Behaviours

Five boolean flags control how the field participates in search operations.

BehaviourDescription
searchableThe field is included in full-text search queries
filterableThe field supports exact-match and range filter expressions
sortableResults may be ordered by this field
facetableThe field produces facet counts for category navigation
retrievableThe field value is returned in search results

Search Field Types

The search projection supports a comprehensive set of field types across several categories.

Vector Search Configuration

Properties with a vector search field type require additional configuration for similarity search.

PropertyTypeDescription
dimensionsnumberThe number of dimensions in the vector (required for dense_vector)
vectorSearchProfilestring (optional)Reference to a vector search profile defining the algorithm and parameters
similarityMetricstring (optional)Distance function: cosine, dot_product, or l2_norm
{
  "search": {
    "included": true,
    "searchFieldType": "dense_vector",
    "dimensions": 1536,
    "vectorSearchProfile": "hnsw-default",
    "similarityMetric": "cosine",
    "searchBehaviours": {
      "searchable": true,
      "filterable": false,
      "sortable": false,
      "facetable": false,
      "retrievable": true
    }
  }
}

Profile Overrides and Sub-fields

Search projections support two advanced features for multi-profile and multi-field scenarios.

FeatureDescription
profileOverridesPer-profile overrides keyed by search profile ID; each override replaces the default analyser, boost, or behaviours for that specific profile
Sub-field configurationMulti-field mappings that index the same source property under different field types or analysers (for example, a text field with an additional keyword sub-field for exact matching)

API Projection

The API projection determines how a property is exposed through generated API contracts.

PropertyTypeDescription
includedbooleanWhether the property appears in API request and response payloads
fieldNamestring (optional)Override the field name in the API contract
readOnlyboolean (optional)Mark the field as read-only (excluded from request bodies, included in responses)
{
  "api": {
    "included": true,
    "fieldName": "email",
    "readOnly": false
  }
}

Custom Projection

The custom projection provides a flexible extension point for downstream systems not covered by the built-in projection types.

PropertyTypeDescription
includedbooleanWhether the property is included for this custom consumer
metadataRecord<string, any>Arbitrary key-value pairs consumed by external tooling or pipelines
{
  "custom": {
    "included": true,
    "metadata": {
      "exportFormat": "parquet",
      "piiClassification": "confidential",
      "retentionDays": 365
    }
  }
}

Configuring Projections

Next Steps

Model Validation Rules
Structural and semantic rules that validate your model
Learn more →
Creating Views
Generate ERD, graph, and search views from model entities
Learn more →
Search Views
Profile-aware search index configuration tables
Learn more →