Skip to content

Initial development roadmap

Karl Hobley edited this page Jan 19, 2017 · 47 revisions

Phase 1 (completed!)

the "get it working" phase

Write something that passes all the search tests for Wagtail CMS

  • Initial project setup (DONE)
  • Mappings (DONE)
  • Basic data types (string, number, boolean) (DONE)
  • "simple" and "edgengram" analyzers (DONE)
  • Simple flat, in-memory document index (not inverted) (DONE)
  • Simple, ranked retrieval (DONE)
  • Prefix queries (DONE)
  • Create/Delete index API (DONE)
  • Search/Count API (DONE)
  • Put/Get/Delete document API (DONE)
  • Put mapping API (DONE)
  • Bulk insert API (DONE)

Phase 2 (completed!)

the "tidy it up" phase

Tidying up the code written in phase 1. Adding tests. Starting some of the groundwork for phase 3

  • Rewrite query parser (DONE)
  • Mapping registry (DONE)
  • Term/Token data structures (DONE)
  • Multi-value fields (DONE)
  • Rationalise query types (DONE)
  • Multiple backend support (DONE)

Phase 3 (ETA early 2017)

the "make it work properly" phase

  • Search on inverted index (DONE)
  • Configurable analyzers (DONE)
  • Date fields (DONE)
  • "terms" query (DONE)
  • Persistence (in progress)
  • Probablistic retrieval (DONE)
  • Server configuration
  • Release 0.1! 🚀

Post initial development

Things I'd like to get done eventually, but are too big for the initial development phase.

  • "exists" and "missing" queries (in progress)
  • Nested fields (in progress)
  • Snowball stemmer integration
  • Function scoring
  • Range queries
  • Phrase queries
  • Management CLI (rusticctl)
  • Plugins
  • Highlighting
  • Geospatial search
  • "more like this" queries
  • Aggregations
  • Script scoring
  • Percolators
  • Authentication and access control
  • Clustering
  • Monitoring (logging/statistics/alerts)