Salt & Light Realty2024Real-estate database search

Search You Now Property Search System

A controlled search system over a real-estate agency’s ~5TB internal property database — instant Meilisearch-powered querying with scoped access and audit logs, without ever exposing the database itself.

Case study

NoctverseSalt & Light Realty

Real-estate database search · 2024

The starting point

The problem this system was built to solve.

A real-estate agency held roughly 5TB of internal property data its teams needed to query daily — but broad, uncontrolled access to that data is a liability, not a feature.

The system was built to give teams a fast, structured way to search records while keeping access scoped, activity audited, and private database details unexposed.

Who uses it

The people the system serves.

Agency teams

Query property and consumer records through the search dashboard.

Administrators

Manage who can access what via permission roles, and review audit logs of activity.

The workflow

How work moves through it.

  1. 1

    A team member signs in and queries the database through the search dashboard.

  2. 2

    Results expose the fields the person’s role permits — no raw database access.

  3. 3

    Consumer records are viewed through controlled screens.

  4. 4

    Administrators assign permission roles through a matrix, and audit logs record activity for review.

What we designed

Structure before screens.

  • A search-first dashboard shaped around high-volume, repetitive querying.
  • Permission roles and a matrix UI that make access rules explicit and reviewable.

What we developed

The engineering behind it.

  • The search system over the agency’s large internal property database.
  • Role-based access control with a permission matrix.
  • Audit logging of search and record activity.

Key modules

Login and access controlSearch dashboardMeilisearch query layerConsumer recordsPermission roles and matrixAudit logs

The thought process

Why Meilisearch — the search-engine thought process

The naive answer is to search the database directly: SQL LIKE queries or the built-in full-text indexes. At this scale that fails twice. Operationally, every search becomes load on the production database — a team hammering ad-hoc text queries against ~5TB competes with the records system itself. And functionally, SQL text search has no real notion of relevance: it cannot rank the best match first, forgive a typo in a consumer name, or return results as someone types. It answers "which rows contain this string", which is not the question an agent at a desk is asking.

The industry reflex is Elasticsearch, and for log analytics or heavy aggregation pipelines it earns its complexity. Here it would have been the most expensive component in the stack: a JVM-based cluster that wants memory, shard planning, and someone whose job is to keep it healthy. The agency needed excellent keyword search over structured records — not a distributed analytics engine — and taking on Elasticsearch-grade operations for that is paying enterprise costs for a feature the team would never use.

Meilisearch sits exactly at the shape of this problem. It is built for instant, typo-tolerant, as-you-type search with sensible relevance out of the box, and it runs as a single lightweight service instead of a cluster. The searchable fields are indexed into Meilisearch while the database stays the untouched source of truth — so queries hit the index at interactive speed, production data never takes search load, and the permission and audit layers decide what any given role is allowed to see of the results.

Inside the system

Screens from the shipped build.

Shown in the order a user actually moves through the system. Published with the client’s agreement — client data comes first, and only approved screens appear here. Read more about how we protect data in our privacy policy.

Search You Now system login screen
Search You Now system login screen
Property database search dashboard
Property database search dashboard
Consumer record view
Consumer record view
Permission roles configuration
Permission roles configuration
Permission matrix screen
Permission matrix screen
Audit logs of search activity
Audit logs of search activity

Technical constraints

What shaped the build.

~5TB of internal data had to stay queryable in real time without ever exposing the underlying database.

Search had to be forgiving — property and consumer lookups arrive misspelled, partial, and mid-typing.

Every access needed to be attributable — audit logs are a first-class module, not an afterthought.

Where it landed

The outcome, stated plainly.

We report what the system does in operation — not metrics we can’t verify.

  • Teams query a large internal property database through one controlled system instead of ad-hoc exports.
  • Access is scoped per role, and audit logs keep every query and record view reviewable.

Project enquiry

Running a similar operation?

Tell us how your workflow runs today — who is involved, what gets approved, where the delays are. We’ll map what should be built, and give you a concrete plan before any code is written.