Logo
NeoArc Studio

Search Profiles

Search profiles map canonical model types to engine-specific types and define naming conventions, analysers, synonym maps, and operational strategies for 6 supported search engines.

Search profiles define how the central model maps to a specific search engine's index schema. Each profile targets one of 6 supported engines and controls type mappings, naming conventions, analyser defaults, synonym maps, custom analysers, and operational strategies. Profiles are stored as .neoarc-search-profile.json files in .neoarc-project/profiles/.

Supported Search Engines

NeoArc Studio supports 6 search engine vendors. Each profile targets exactly one engine.

EngineIDDefault AnalyserDescription
ElasticsearchelasticsearchstandardOpen-source distributed search and analytics engine
Azure Cognitive Searchazure-cognitive-searchstandard.luceneMicrosoft Azure managed search service
OpenSearchopensearchstandardAWS-backed open-source search and analytics suite
TypesensetypesensedefaultOpen-source typo-tolerant search engine
Algoliaalgolia(schemaless)Hosted search-as-a-service platform
Customcustom(configurable)Custom or unlisted search engine

Profile Structure

A search profile contains several configuration sections. All fields beyond the engine selection are optional and have sensible defaults.

Synonym Maps

Synonym maps define term equivalences for query expansion. Each profile maintains its own registry of synonym maps, referenced by name from property-level search configuration.

Rule TypeDirectionExample
equivalentBidirectionallaptop, notebook, portable computer (any term matches any other)
explicitDirectionalUK => United Kingdom, Britain (source terms map to target terms only)

Custom Analysers

Custom analysers compose a tokeniser with token filters and character filters. Each custom analyser is registered at the profile level and becomes available in property-level analyser dropdowns alongside the engine's built-in analysers.

interface SearchCustomAnalyzer {
  name: string;
  tokenizer: string;        // Dropdown lookup from engine's built-in tokenisers
  tokenFilters?: string[];  // Add/remove list with dropdown lookup per item
  charFilters?: string[];   // Add/remove list with dropdown lookup per item
}

Operational Settings

Search profiles include operational configuration that governs how indexes are maintained at runtime.

Change Tracking Strategy

Defines how the indexer detects changed documents.

StrategyDescription
high-water-markUses a timestamp or version column to detect changes since the last indexing run
sql-integratedRelies on SQL Server integrated change tracking
full-reindexRebuilds the entire index on each run
customCustom change detection logic

Deletion Strategy

Controls how document deletions are handled in the index.

StrategyDescription
soft-deleteMarks documents as deleted via a configurable field and value
hard-deleteRemoves documents immediately from the index
archiveMoves deleted documents to an archive index
tombstoneRetains a deletion marker for a configurable retention period

Index Alias Management

Aliases enable zero-downtime reindexing. The alias pattern uses template variables ({indexName}, {version}, {date}, {environment}).

Swap StrategyDescription
blue-greenBuilds a new index, then atomically swaps the alias from old to new
rollingGradually migrates traffic to the new index
manualRequires manual alias swap after the new index is built

Index Lifecycle Management

For time-series or retention-sensitive indexes, ILM automates tier transitions and cleanup.

SettingDescription
Hot durationTime in the hot (primary read/write) tier
Warm durationTime in the warm (read-only, reduced resources) tier
Cold durationTime in the cold (archived, minimal resources) tier
Delete durationTime before permanent deletion
Force merge on warmWhether to force-merge segments on transition to warm
Rollover: max sizeMaximum index size before rollover (MB, GB, or TB)
Rollover: max docsMaximum document count before rollover
Rollover: max ageMaximum age before rollover

Environment Overrides

A single base profile serves multiple environments. Environment overrides vary operational settings while keeping schema-level configuration (type mappings, analysers, engine) constant across environments.

Overridable SettingTypical Variation
shardCount1 in development, 3 in production
replicaCount0 in development, 2 in production
refreshInterval1 second in development, 30 seconds in production
changeTrackingStrategyfull-reindex in development, high-water-mark in production
deletionStrategyhard-delete in development, soft-delete in production
aliasConfigDisabled in development, blue-green in production

Engine Features Matrix

Not all features are available on every engine. The matrix below shows which features each engine supports.

FeatureElasticsearchAzure Cognitive SearchOpenSearchTypesenseAlgoliaCustom
Custom AnalysersYesYesYesNoNoYes
Synonym MapsYesYesYesYesYesYes
Vector SearchYesYesYesYesNoYes
Geo SearchYesYesYesYesYesYes
Nested TypesYesNoYesNoNoYes
Index AliasesYesNoYesYesNoYes
Scoring ProfilesNoYesNoNoYesYes
SuggestersYesYesYesYesYesYes
Index Lifecycle (ILM)YesNoYesNoNoYes
Cross-Cluster SearchYesNoYesNoNoYes

Creating a Search Profile

File Storage