Jupiter.Market.Elastic.Titles.Services.IndexerService
This service coordinates between AverageDurationMs (PostgreSQL), AverageDurationMs (Elasticsearch), and AverageDurationMs (Azure Service Bus) to process title updates in real-time or batch mode. Supports high-priority and regular message processing with configurable time windows.
See also: Architecture Overview
Methods
IndexTitleByIdAsync
Indexes a single title by retrieving all related data from PostgreSQL and upserting it into the !:xref:Elastic.TitlesIndex.
This method performs the following steps:Retrieves the base title reference from
!:xref:Table.TitleFetches all related data in parallel (sales from!:xref:Table.Sale, owners from!:xref:Table.Ownership, planning from!:xref:Table.PlanningApplication, buildings from!:xref:Table.Building, UPRNs from!:xref:Table.Uprn, geometry from!:xref:Table.TitleGeometry, leases from!:xref:Table.Lease, constraints from!:xref:Table.Constraint)Processes geometry data (coordinate transformation, centroid calculation)Builds the building-UPRN hierarchyConstructs the complete IndexTitleByIdAsync objectUpserts the document into Elasticsearch
If the title is not found in PostgreSQL, any existing Elasticsearch document is deleted and the method returns success (not an error condition).
All data retrieval operations execute in parallel for optimal performance.
See also: Title Construction Process
Parameters:
- titleId: The unique identifier of the title to index.
- cancellationToken: Cancellation token for the operation.