I co-founded a startup SRCH2 to commercialize our research results on powerful search. As the CTO while on leave from UCI, I led an engineering team to develop an in-memory high-performance search engine from scratch using C++. It has the following features:

  • Full-text search
  • Instant search (prefix predicates)
  • Error correction (fuzzy search)
  • Boolean expressions
  • Faceted search
  • Stemming and stop words
  • Phrase search (e.g., “new york”)
  • Rich data types (e.g., text, int, float, and date)
  • Attribute-based search
  • Filtering (e.g., “price < 20”)
  • Sorting
  • Geo search
  • User feedback ranking
  • Proximity ranking
  • Server-side highlighting
  • Query logging
  • Configurable ranking (including prefix and fuzzy predicates)
  • Real-time updates
  • Multi-threaded
  • Multiple languages
  • Chinese tokenization
  • Multiple data sources
  • RESTful API
  • Support of control messages (e.g., system status and index serialization)
  • Port-level network security
  • Token-based authorization
  • Access control (record based and attribute based)
  • Connectors to MySQL, SQLite, SQL Server, Oracle, MongoDB, with connectors for other data sources coming soon
  • SDK for programmers to write connectors for new data sources.

The product is open source.