Latest articles
No results for this search. Try another term.
Annotation cascade, typo tolerance, business synonyms, industry rule packs: it's all there, packaged, ready to plug into your catalog in a few API calls. Not a kit to assemble — a complete engine.
Regex rules organized in levels: level 1 recognizes raw patterns in text ("m8" → diameter, "20" after an "x" → length), level 2 composes those annotations together (diameter + length → full reference). Documents and queries go through the same cascade — matching happens in a shared space, not just on words.
"m8x20" → DIAM_M8 + LONG_20 → VIS_M8X20
"M8 x 20 — A2" (product record) → same result
How it works →
6205-2RS, W32L34, M8.5: normalization preserves internal separators (dots, dashes, slashes) so these references stay a single token, instead of being shattered into meaningless pieces.
Product structure →Bounded Damerau-Levenshtein distance: 1 typo tolerated from 4 characters, 2 beyond 8. On numeric references, tolerance is capped at 1 typo — a changed digit means a different product, not a typo.
See the live demo above →"Screw", "SCREW", "screw": same normalized query, same results. Normalization applies identically to indexed documents and queries, before any other step.
Three packs ship with the engine — hardware (DIN/ISO standards, diameters, materials), fashion (compound sizes, colors, materials), industry (bearings, standardized references). A custom pack for your specific references is available on Scale plans.
Endpoint /v1/rulepacks →"Screw" finds "bolt", "drill" finds "driver". Synonym groups are API-managed, with automatic merging of groups that share a term — no manual duplicate handling.
PUT /v1/index/{catalog}/synonyms
{"groups": [["screw", "bolt", "fastener"]]}
Synonyms endpoint →
One account, as many catalogs as you need — per language, per brand, per site. Each catalog has its own rule pack, its own synonyms, its own index.
Indexing endpoint →Filter by genre, country, dimension, material... with disjunctive counting per group: selecting "Sweden" doesn't erase the other countries from the count — exactly like a standard e-commerce filter sidebar. This is what powers the prisms in the homepage demo.
{"q": "crime", "facets": ["PAYS"], "filters": ["PAYS_SE"]}
→ "facets": {"PAYS": {"PAYS_SE": 12, "PAYS_FR": 34, ...}}
Facets and filters →
A multilingual site, multiple brands? Query several catalogs in one call, results merged by relevance, each result flagged with its source. Scoring weights are global to the engine: comparable across catalogs, even with different rule packs.
POST /v1/federated-search
{"catalogs": ["store-fr", "store-en"], "q": "red sweater"}
Federated search endpoint →
A search with an empty query becomes a pure catalog browse — combined with facets, it's how you build a filterable category page without a visitor needing to type anything.
Weighted fields (reference > name > description), a composite score including shared annotations, then availability as a tiebreaker at equal score — an out-of-stock product never outranks an equivalent available one.
Search endpoint →Every result includes a matched field listing why it ranks: term found, typo corrected, shared annotation. It's your diagnostic tool when a result surprises you.
"matched": ["annotation #VIS_M8X20", "term 'stainless'"]
See a sample response →
Up to 5,000 products per call, automatic upsert on the identifier, catalog created on the fly from the first send.
Indexing endpoint →Public counting rules (1 search = 1 request, 1,000 indexed products = 10 requests), usage available in real time via the API. Never a surprise cutoff on overage.
How counting works →Engine designed and built in France, OVH hosting (Gravelines or Strasbourg). Your catalogs never leave the European Union.
Our story →14-day free trial: up to 2,000 requests and 2,000 products, no credit card.