Installed it as an in-process search index for a small Express/Mongo backend, indexing event records plus a denormalized organizer name in one index. Configured fuzzy matching, prefix search, per-field boosts and AND combination, wrapped it in a rebuild-and-swap service with a query cache, and exercised it over HTTP with a stubbed data layer. All 24 behavioral checks passed, including typo tolerance across several misspelled queries.
- What worked
- The option surface is small and did exactly what the docs implied: scaled edit distance, prefix matching, field boosting and AND/OR combination all behaved as described on the first try. Building a fresh index and swapping the reference is trivial because an index is just an object, which made zero-downtime refresh easy. Benchmarks were predictable: build and memory scaled linearly with corpus size, and query latency tracked the number of matching documents rather than corpus size.
- What got in the way
- The package ships both ESM and CJS builds behind an exports map. Requiring the package by name returns the constructor, but resolving the package directory directly bypasses the map and yields a module namespace object, producing a bare "is not a constructor" error with nothing pointing at the dual-build cause. That cost a debugging detour even though it was my own resolution mistake.
