Spatial & imagery

Most engines bolt a bounding box onto a text index and call it geospatial. Lucenia indexes real geometry, carries the full spatial predicate set across two coordinate systems, and lets geometry participate in relevance ranking directly.

predicates

The full predicate set, exactly

PredicateSemantics
INTERSECTSquery and indexed geometry share at least one point — the default for “what is in this area”
DISJOINTno shared points — expensive to fake with bounding boxes, exact here
WITHINindexed geometry falls entirely inside the query geometry — containment, not overlap
CONTAINSindexed geometry fully encloses the query geometry

Supported shapes: points, lines, circles, and polygons, via geo_shape on the map and xy_shape in Cartesian space. A query against a coastline, a flight corridor, or an irregular administrative boundary returns the exact answer, not an approximation of one.

cartesian

The same grammar, in pixel space

xy_point and xy_shape apply the identical predicate set to Cartesian coordinates. Regions of an image, detections on a raster, and features in a non-georeferenced frame become first-class query targets — one language for where something is on the earth and where it is in the frame.

Because spatial predicates execute in the same query as BM25 scoring and k-NN similarity, relevance can be a function of all three at once. There is no re-ranking pass over a candidate set fetched from a separate spatial system.

// detections in a raster region, ranked by text relevance
POST /detections/_search
{
  "query": {
    "bool": {
      "must":   [ { "match": { "label": "vehicle staging" } } ],
      "filter": [ { "xy_shape": { "region": {
                      "shape": { "type": "envelope", "coordinates": [[1024,0],[2048,768]] },
                      "relation": "within" } } } ]
    }
  }
}
0,0 512102415362048 384768 xy_shape · WITHIN 1 2 3 outside — excluded frame: 2048 × 768 px · origin top-left

The envelope from the query above, in pixel coordinates — detections outside it never enter scoring.

imagery

Raster operations in the engine

Analysis primitives run where the index lives, so imagery workflows stay in the engine instead of moving data out to a notebook and back.

acquired 2026-03-14
Δ Δ Δ acquired 2026-07-02

Change detection over an area of interest: structures present in July and absent in March, flagged as Δ — queryable like any other field.

CapabilityFunction
Change detectiondifference imagery across acquisitions over an area of interest
Temporal coveragewhat imagery exists for an area, over what time window
Reprojectiontransform between coordinate reference systems at query time
Image regionsaddress sub-image geometry directly, paired with xy_shape
Similar imageryretrieve by visual similarity to a reference image
Contour · route · layersderived geometry and network operations on indexed data

See it running: imagecat is a live catalog of 144 Sentinel-2 scenes on Lucenia — natural-language multimodal search, with the semantic reasoning behind each match exposed.

Bring us a spatial query your stack can’t answer