Sensei

A Distributed Elastic Real-Time Searchable Database

Sensei Development Team


Table of Contents

1. Introduction
Design Considerations
Comparing to Traditional RDBMS
Architecture
Architectural Diagram
2. Consistency Model
CAP theorem
Eventually Consistency
3. Getting Started
Overview
Prerequisites
Embedded Technologies
Details
Building Sensei
Starting ZooKeeper
Starting Sensei Nodes
Web Application and RESTful End-Point
Starting Clients
4. Sensei Demo
Overview
Run the Demo
URLs
Screenshots
Diagram
Demo Configuration
Data Model
5. Indexing
Data Acquisition
Index Sharding
Index Replication
Sensei Cluster Overview
6. Hadoop Indexing
Overview
Hadoop Indexing Sub-system
Demo
Car Demo Configuration
7. Searching
Sensei Request
Load Balancing
RESTful API
Scalar Parameters
Sort Fields Parameter
Query Parameters
Selection Parameters
Facet Specification Parameters
8. Sensei Clients and APIs
REST API
Java Client
Python Client
Ruby Client
9. Sensei Configuration
Overview
Data Modeling
Table Schema
Facet Schema
System Configuration
Server Properties
Cluster Properties
Indexing Properties
Broker and Client Properties
Plug-in Properties
10. BQL: Browsing Query Language
What is BQL?
BNF Grammar for BQL
BNF Notation
BQL Grammar
BQL Statement Syntax
DESCRIBE Statement
SELECT Statement
Query Examples
Basic Query
Queries with Limited Number of Results
Queries with Basic Conditions
Queries with AND, OR, and NOT Logic in Value Selections
Having Search Results Sorted
Queries with Full Text Search
Queries with Group By
Getting Facet Information Using Browse By Clause
Queries with Run-Time Facet Handler Initialization Parameters
11. FAQ
About Sensei
Sensei Configuration
Problems Running Sensei
A. Appendix
BQL Syntax Diagrams
Top Level Statement
DESCRIBE Statement
SELECT Statement
WHERE Clause
Predicates
Cumulative Predicates
IN Predicate
CONTAINS ALL Predicate
Equal Predicate
NOT equal Predicate
Query Predicate
BETWEEN Predicate
Range Predicate
Time Predicate
EXCEPT Clause
Predicate Properties
GIVEN Clause
Additional Clauses
ORDER BY Clause
GROUP BY Clause
LIMIT Clause
BROWSE BY Clause
Facet Specification
FETCHING STORED Clause
Index

List of Figures

1.1. Sensei and Its Foundation
1.2. Sensei Data Gateway
1.3. Sensei Architectural Diagram
4.1. Sensei Web Client
4.2. Demo
4.3. RESTful End-Point
4.4. The Sensei Demo System
5.1. Index Sharding and Replication
6.1. Sensei Hadoop Indexing Workflow

List of Tables

2.1. CAP theorem with examples (of default configuration)

List of Examples

7.1. Scalar Parameters
7.2. Sort Fields Parameters
7.3. Query Parameters
7.4. Selection Parameters
7.5. Facet Specification Parameters