Click Below to Get the Code

Browse, clone, and build from real-world templates powered by Harper.
System Architecture
GitHub Logo

Product Discovery and Business Search

Bring search, live business context, and reusable answers together in Harper, close to the people who need them.
Search
System Architecture
Search

Product Discovery and Business Search

Harper
at Harper
October 2, 2026
Harper
at Harper
October 2, 2026
Harper
at Harper
October 2, 2026
October 2, 2026
Bring search, live business context, and reusable answers together in Harper, close to the people who need them.
Bring search, live business context, and reusable answers together in Harper, close to the people who need them.
Harper

A shopper wants rain gear for commuting. A support agent needs the current returns policy. Both need useful information without knowing the exact product name or document title. Some requests also need live stock or account details, while others benefit from a written explanation. Delivering all of this quickly means connecting discovery, current business information, and answers without repeating the same work for every request.

How Harper brings search and answers together

Harper combines full-text search, vector search, and structured queries with application logic. Full-text search finds words and phrases. Vector search finds related meaning, so “rain gear for commuting” can lead to a waterproof jacket. Structured queries retrieve specific records and filter by category, brand, or document type. The application can return matches directly or use them to support a written answer.

Searchable product content and documents live in Harper’s database, with local embeddings and indexes alongside them. A configured refresh process brings in source changes on a schedule or when an update event arrives. Inventory, current pricing, and customer-specific details can be checked directly against the system of record when needed.

Reuse answers before generating new ones

For requests that need a written answer, the application can first check for a current, reusable response to the same or an equivalent question. Each eligible cached answer avoids generating that response again, reducing LLM generation charges and helping people get answers faster. Teams can serve repeated questions without paying for a new generated answer each time. If none qualify, it retrieves supporting information and asks a local or hosted language model to compose an answer. This lets a general question like “How do I return a jacket?” reuse an eligible policy answer, while “Has my refund arrived?” follows a customer-specific lookup.

Application rules decide which answers can be shared, kept private, or excluded from caching. They can check the source information, permissions, and customer-specific context, with an optional focused model check for suitability. Only eligible answers enter the shared cache. Expiration and source-change rules keep old answers from being reused. These are controls teams build into their Harper application.

Search and answers can run alongside personalization and page caching in the same cluster. To bring them closer to a new audience, select a region in Fabric and confirm the deployment. Fabric handles provisioning, replication, routing, and failover. Teams can expand regional coverage in a few clicks, while live source checks and model calls still depend on the systems they reach.

Alternatively, connecting search, answers, and business services

A common approach combines an application with a dedicated search service, business APIs, an answer cache, and an optional language model. Algolia, for example, supports search, personalization, indexed product attributes, and embeddings through NeuralSearch. The application coordinates live business checks and, when written answers are needed, retrieval, generation, and cache reuse.

These services can run across multiple regions, and managed providers handle parts of that distribution. Teams can deliver the same experience with this approach. They still connect the services and keep their data updates, permissions, and answer-reuse rules aligned.

Where coordination adds work

A changed policy may need both a search update and the retirement of cached answers. A permission change must affect what users can find and reuse. Separate services also add network trips between search, application logic, and the cache. Harper brings those parts together near the audience, while preserving live source checks and optional model calls.

Why Harper matters

Help people find relevant information and get useful answers, with less repeated work and fewer systems to coordinate.

  • More useful discovery. Combine text and meaning-based search with live business details when needed.
  • Faster repeat answers. Reuse eligible responses without waiting for another generation.
  • Lower LLM generation costs. Reuse eligible answers instead of paying a model to generate the same response again. Repeated questions can be served from the cache, reducing generation spend as usage grows.
  • Simple regional expansion. Place search and reusable answers near your audience, then add regions in Fabric in a few clicks.
  • Less to connect and operate. Keep search, data, embeddings, caching, and application rules within one Harper deployment.

Related solutions

Ecommerce template (GitHub) demonstrates product search with Harper. It supports keyword matching and optional search by meaning using OpenAI embeddings and Harper’s built-in vector index.

Semantic caching example (GitHub) demonstrates looking up similar questions before generating an answer, with configurable model backends. Teams add their own privacy, permission, and reuse rules.

Harper 5.3 introduces native full-text search with BM25 relevance ranking and a native HNSW vector index.

Plan for current information and appropriate reuse

Connect content updates, deletions, and permission changes to search and cached-answer invalidation. Use live source checks for freshness-sensitive details. If the source is unavailable, search can still return stored content, but live availability should remain unconfirmed.

Base shared-cache eligibility on the information used to create an answer and the audience allowed to receive it. Removing a name alone does not make a personalized answer reusable. Rules and a focused model check can assess suitability, keeping uncertain answers private or uncached. Apply access rules to search results, suggestions, previews, and cached answers.

For generated answers, retain supporting source links and test accuracy. Keep embedding models consistent across regions and refresh embeddings when content changes. Define expiration, source versions, and relevant context such as language or market before reusing an answer.

Start with one search and answer journey

Choose one catalog or knowledge collection and a set of real questions. Compare relevance, response time by region, content freshness, cache reuse, and model cost. Test paraphrased questions, personal requests, changed policies, and source outages before expanding.

Bring your search journeys, repeated questions, content sources, and audience locations to a Harper workshop. Start with one useful experience, then expand.

‍