Appearance
Core Concepts
Understanding the BlueCurve data model is essential for effective integration and plugin development.
Subscription
Everything in BlueCurve is partitioned by Subscription. A subscription represents a tenant or a logical isolation boundary. API Keys are tied to subscriptions and control access to all underlying resources.
Collection (Index)
A Collection (often referred to as an Index) is a search space containing documents.
- Documents within a collection are searchable together.
- Each collection can have its own
MatchingConfigurationandStructureConfiguration.
Source
A Source is a provider of data. It can be a web crawler, a filesystem connector, or an external system pushing data via the Ingestion API.
Document
A Document is the atomic unit of the search engine.
- Raw Document: The original file content (PDF, Text, etc.) and its metadata.
- Processed Document: A set of indexed fields (e.g., Title, Content, Tags) extracted from a raw document.
Identity
Documents are identified by a Fingerprint (128-bit unsigned integer) derived from their URI. SDK helpers preserve both 64-bit halves when computing and passing document identifiers.
Analyzers & Language Processing
BlueCurve uses language-specific analyzers to process text during both indexing and searching.
- Tokenization: Breaking text into individual terms (words).
- LCID-Based Analysis: Analyzers are selected based on the
Lcidprovided in the document or query. See Supported Languages for the full list. - Stopwords: Common words (e.g., "the", "and") are filtered out using the Stopwords API.
Field Normalization
Fields are processed differently based on their FieldType:
- MainContent: Tokenized and normalized (lowercase, accent removal) for full-text search.
- VerbatimString: Indexed exactly as provided (case-sensitive, no tokenization). Used for IDs, tags, or keys.
- Number/DateTime: Indexed as binary values for efficient range queries.
Referential Data
Referential data provides system-wide context that can be used to enrich your search experience.
- Languages: Use the Referential API to get the list of supported ISO codes (e.g.,
ENG,FRA). A full list is available in the Supported Languages guide. - Data Enrichment: You can "join" referential data during indexing to ensure consistent tagging across different sources.
Tasks & Asynchronicity
Operations like indexing, collection creation, package deployment, or job execution are asynchronous. Each operation returns a TaskId, which can be used to monitor the progress and outcome of the operation via the Tasks API.