Search
Design search indexes within the central model, target 6 search engine vendors with profile-based configuration, and detect drift between design-time schemas and deployed indexes.
The search system in NeoArc Studio brings search index design into the central model. Each property in the graph model opts in to search projections via per-property configuration, defining field types, behaviours, analysers, vector search settings, and per-profile overrides. Search profiles map canonical model types to engine-specific types for 6 search engine vendors. Data Views in search mode provide an interactive graph-based visualisation of index projections with profile-aware type and name resolution. Click any entity node to open the Entity Overlay showing the full search field configuration. Drift detection compares the design-time schema against deployed indexes, surfacing discrepancies before they reach production.
Key Capabilities
Supported Engines
Search profiles target one of 6 search engine vendors. Each profile stores engine-specific type mappings, naming conventions, and operational settings.
| Engine | ID | Default Casing | Default Analyser | Description |
|---|---|---|---|---|
| Elasticsearch | elasticsearch | camelCase | standard | Open-source distributed search and analytics engine |
| Azure Cognitive Search | azure-cognitive-search | camelCase | standard.lucene | Microsoft Azure managed search service |
| OpenSearch | opensearch | camelCase | standard | AWS-backed open-source search and analytics suite |
| Typesense | typesense | camelCase | default | Open-source typo-tolerant search engine |
| Algolia | algolia | camelCase | (schemaless) | Hosted search-as-a-service platform |
| Custom | custom | camelCase | (configurable) | Custom or unlisted search engine |
Search Behaviours
Five core behaviours control how each field participates in search operations. These are configured per property in the model and displayed as YES/NO columns in search views.
| Behaviour | Description |
|---|---|
| Searchable | Field is included in full-text search queries |
| Filterable | Field supports filter expressions (exact match, range) |
| Sortable | Field is available for sorting results |
| Facetable | Field is available for faceted navigation and counts |
| Retrievable | Field is returned in search results |
Search Field Types
17 search field types across 7 categories define how values are indexed and queried.
| Category | Types | Description |
|---|---|---|
| Text | text, keyword, completion | Full-text analysed, exact match (not analysed), and autocomplete/suggest |
| Numeric | integer, long, float, double, half_float, scaled_float | Six numeric types covering all precision requirements |
| Boolean and Date | boolean, date | Logical flags and temporal values |
| Geo | geo_point, geo_shape | Geographic coordinates and shapes for spatial queries |
| Structured | object, nested | Embedded objects and nested documents for complex hierarchies |
| Vector | dense_vector | High-dimensional embedding vectors for semantic and similarity search |
| Binary | binary | Raw binary data stored as Base64-encoded strings |
Engine Features
Not every engine supports every feature. The engine features matrix shows exactly which capabilities are available for each vendor.
Text Analysis
Text analysis determines how field values are tokenised, normalised, and indexed. Built-in analysers are available per engine, custom analyser composition, and synonym maps.
Sub-Field Configuration
Sub-fields enable multiple indexing strategies on a single source field. A common pattern is a text field with a .raw keyword sub-field: the text field supports full-text search while the keyword sub-field supports exact filtering and sorting. Each sub-field specifies a name suffix, a search field type, and an optional analyser.
{
"subFields": [
{
"name": "raw",
"searchFieldType": "keyword"
},
{
"name": "english",
"searchFieldType": "text",
"analyzer": "english"
}
]
}
Drift Detection
The search drift detection service compares the design-time schema (derived from the graph model and active search profile) against a deployed index schema. The deployed schema is provided as JSON, for example from an Elasticsearch GET _mapping or Azure Cognitive Search GET index response.
| Drift Type | Severity | Description |
|---|---|---|
| field-removed | Error | Field exists in the design but is missing from the deployed index |
| field-added | Info | Field exists in the deployed index but not in the design |
| type-changed | Warning | Field type differs between design and deployment |
| analyzer-changed | Warning | Field analyser differs between design and deployment |
| field-renamed | Available | Field name change detected between design and deployment |
The drift report summarises all discrepancies with total counts, grouped by severity (errors, warnings, informational). A clean report confirms the deployed index matches the design-time schema exactly.
Search Validation
8 search-specific validation rules enforce consistency and correctness in the search index design.
Operational Configuration
Search profiles include operational settings that control how indexes are managed in production.
Data Views: Search Mode
Data Views in search mode (.data-view.json) provide an interactive graph-based visualisation of search index projections. Click any entity node to open the Entity Overlay, which shows the search field configuration with the following columns.
| Column | Width | Content |
|---|---|---|
| Key | 40px | Y or - indicating the document key field |
| Field | 180px | Resolved field name with naming convention applied |
| Type | 150px | Resolved type with engine-specific type mapping applied |
| Searchable | 90px | YES or NO |
| Filterable | 85px | YES or NO |
| Sortable | 75px | YES or NO |
| Facetable | 85px | YES or NO |
| Retrievable | 95px | YES or NO |
| Analyzer | 130px | Active profile analyser override or base analyser |
| Boost | 60px | Boost value or - |
A profile dropdown in the top bar switches the active search profile, and the Entity Overlay re-renders with the selected profile's naming conventions, type mappings, and analyser assignments. The overlay shows the full field-level configuration including field identity, query behaviours, text analysis, vector search, storage and performance, governance, and sub-fields.
Getting Started
To begin using the search system:
- Create a search profile in the project editor, selecting a target engine and configuring naming conventions and type mappings.
- Open a model entity in the graph editor and switch to the search lens.
- Include properties in the search projection by setting
included: trueand configuring behaviours, field type, and analyser. - Create a Data View in search mode to visualise the index projection across multiple entities interactively.
- Use drift detection to compare the design-time schema against a deployed index.
Configure search index projections in the central model, create search profiles for your target engine, and build search views to visualise the resulting index schema.
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.
Configure dense vector fields for semantic and similarity search using SearchProjectionConfig, with support for cosine, dot product, and L2 norm similarity metrics.
Create Data Views in search mode to visualise search index schemas with profile-aware resolution of field names, types, and analysers. Inspect entities via the Entity Overlay with 10 search index columns and expandable field detail.
Complete technical reference for the NeoArc Studio search system, covering search profiles, per-property configuration, engine features, operational strategies, validation rules, and search view columns.
Step-by-step guide for creating a search profile, configuring per-property search projections, setting search behaviours, and creating a search view to visualise the index.