Start with the moment that matters
Someone opens your product and types a question. They do not know which document contains the answer. They may not know the words your team used to describe it. They know what they are trying to do, and they expect search to get them closer.
Consider a customer asking whether they can change their mind about an order. The relevant document might be called “Returns and exchanges.” A search experience that depends on the customer guessing that title has handed part of its job back to the customer.
The useful starting point is that moment of uncertainty. Which questions should the product answer? What information would let someone take the next step? What should happen when there is no answer in the collection? Those decisions give the technical work a purpose.
Embeddings are a means to an end
Dense retrieval represents queries and documents numerically, then looks for related representations. It is a powerful way to connect different expressions of an idea. The standard workflow includes generating document embeddings and comparing them with an embedded query.
But choosing that approach also creates decisions about preparing documents, keeping representations current, storing them, and evaluating results. A managed service may absorb much of the operational work. A self-managed stack gives you more direct control and more responsibility.
Neither choice is automatically right. The mistake is treating an embedding pipeline as the product requirement before deciding what a successful search should accomplish.
Technical background: Sentence Transformers semantic search ↗
Buy the outcome you actually need
WonderSearch takes a product-level approach: a serverless sparse retrieval service for semantic search, charged per query, with storage billed separately. There are no upfront ingestion or embedding fees, and you do not operate a separate embedding pipeline.
That is a useful fit when your team wants to build the experience around search: the support flow, the internal knowledge tool, or the AI assistant that needs relevant context. It leaves your team with an important responsibility that no service should make disappear: checking whether the results are useful for your users.
Start with a small set of representative questions and the passages you would want returned. Include awkward wording, exact identifiers, and missing answers. A good result is information that helps someone proceed. The architecture should earn its place by making that result easier to deliver.