ObjectStackObjectStack

Search Engine

Search Engine protocol schemas

Full-text search protocol

Supports Elasticsearch, Algolia, Meilisearch, Typesense

Source: packages/spec/src/system/search-engine.zod.ts

TypeScript Usage

import { AnalyzerConfig, FacetConfig, SearchConfig, SearchIndexConfig, SearchProvider } from '@objectstack/spec/system';
import type { AnalyzerConfig, FacetConfig, SearchConfig, SearchIndexConfig, SearchProvider } from '@objectstack/spec/system';

// Validate data
const result = AnalyzerConfig.parse(data);

AnalyzerConfig

Text analyzer configuration for index tokenization and normalization

Properties

PropertyTypeRequiredDescription
typeEnum<'standard' | 'simple' | 'whitespace' | 'keyword' | 'pattern' | 'language'>Text analyzer type
languagestringoptionalLanguage for language-specific analysis
stopwordsstring[]optionalCustom stopwords to filter during analysis
customFiltersstring[]optionalAdditional token filter names to apply

FacetConfig

Faceted search configuration for a single field

Properties

PropertyTypeRequiredDescription
fieldstringField name to generate facets from
maxValuesnumberMaximum number of facet values to return
sortEnum<'count' | 'alpha'>Facet value sort order

SearchConfig

Top-level full-text search engine configuration

Properties

PropertyTypeRequiredDescription
providerEnum<'elasticsearch' | 'algolia' | 'meilisearch' | 'typesense' | 'opensearch'>Search engine backend provider
indexesObject[]Search index definitions
analyzersRecord<string, Object>optionalNamed text analyzer configurations
facetsObject[]optionalFaceted search configurations
typoTolerancebooleanEnable typo-tolerant search
synonymsRecord<string, string[]>optionalSynonym mappings for search expansion
rankingEnum<'typo' | 'geo' | 'words' | 'filters' | 'proximity' | 'attribute' | 'exact' | 'custom'>[]optionalCustom ranking rule order

SearchIndexConfig

Search index definition mapping an ObjectQL object to a search engine index

Properties

PropertyTypeRequiredDescription
indexNamestringName of the search index
objectNamestringSource ObjectQL object
fieldsObject[]Fields to include in the search index
replicasnumberNumber of index replicas for availability
shardsnumberNumber of index shards for distribution

SearchProvider

Supported full-text search engine provider

Allowed Values

  • elasticsearch
  • algolia
  • meilisearch
  • typesense
  • opensearch

On this page