Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mini Zillow AI Search Engine

Semantic Search for Real Estate Listings using FAISS + Sentence Transformers

This repository contains the reference implementation for the Substack article:
What Is FAISS? Building Your Own Zillow AI Search Engine

A practical, production-minded example showing how to build a mini Zillow-style semantic search engine using modern vector search.


Why This Exists

Traditional search engines rely on keywords.
Real users don’t.

This repo demonstrates how to replace keyword search with meaning-based retrieval:

  • Turn listings into embeddings
  • Index them with FAISS
  • Search with natural language
  • Retrieve listings based on semantic similarity

No toy demos.
No buzzwords.
Just the engineering.


Architecture Overview


Client → FastAPI → Embedding Model → FAISS Index → Ranked Listings

Components:

  • FastAPI for serving search requests
  • Sentence Transformers for embedding listings
  • FAISS IndexFlatIP for cosine-style similarity
  • CSV listing dataset
  • Clean structure ready for MLS integration

Features

  • Natural language search
  • Vector embeddings (normalized)
  • FAISS similarity search (IndexFlatIP)
  • Easy to extend with filters
  • Clean project layout for real pipelines
  • Ready for IVFFlat or HNSW upgrades

Quickstart

Install

git clone https://github.com/<your-username>/mini-zillow-faiss
cd mini-zillow-faiss

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Run

uvicorn app.api:app --reload

Query

GET http://localhost:8000/search?q=modern+studio+in+new+york

Response:

[
  {
    "score": 0.87,
    "id": 5,
    "title": "Modern studio",
    "city": "New York",
    "price": 550000
  }
]

Extending the System

Replace CSV

Use real MLS feeds (BrightMLS, CREA, RESO WebAPI, RETS).

Add Filters

Price, bedrooms, city, property type.

Change Index

  • IndexFlatIP simple and effective
  • IVFFlat for large datasets
  • HNSW for lower memory and fast recall

Deploy

Docker-ize and ship to GPU or CPU servers.


Recommended Reading

Full article with deeper explanations: 👉 What Is FAISS? Building Your Own Zillow AI Search Engine

Covers:

  • How FAISS works internally
  • Cosine similarity intuition
  • Semantic search vs keyword search
  • Real engineering pitfalls
  • Lessons from production vector search

🤝 About the Author

Built by Alireza Rahmani Khalili
Principal Software Engineer • AI Engineering • DDD • MLS Systems

Alireza writes about:

  • AI engineering

  • Vector databases

  • Domain-Driven Design

  • Real-estate listing systems

  • Building nation-scale data pipelines

If you're into engineering that actually works in production, subscribe.


License

MIT License.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages