-
Notifications
You must be signed in to change notification settings - Fork 10
Algebraic Logical Query
Algebraic Logical Query supports much more complex filter for specific records that satisfying logical relationship. Just as what we define in SQL where clause.
Here is what algebraic logic defines:
e.g. A[
O[R[col1, 0, 50, 0,0],
R[col2, -1000, 1500, 0,1]],
T[col3 against(\"keyword1 + keyword2, keyword3\")],
R[col4, 1000, 2000, 1,1]
]
means:
(0<col1<50 OR -1000<col2<=1500)
AND
("col3 against(\"keyword1 + keyword2, keyword3\")")
AND
(1000<=col4<=2000)
The FORM is one of the following four forms:
A[node, node, node,....node],
O[node, node, node,....node],
R[col, lower, upper, lower_inclisive, upper_inclusive],
T[statement like: col3 against(\"keyword1 + keyword2\")]
where A stands for logical AND, O stands for logical OR, R stands for range query with lower and upper bound,
and T is the fulltext query statement.
nothing more.
each node is a FORM.
A SQL statement of WHERE clause can be translated to this form easily:
String exp = "O[R[score,75,98,1,1], R[score, -10000, 50,0,0]]";
stands for such a relationship:
where S.\"score\" between 75 and 98 or S.\"score\" < 50
The interface is:
String table = "sales";
String statement = "A[R[score,75,98,1,1], R[score, -10000, 50,0,0], T[statement like: col3 against(\"keyword1 + keyword2\")]]";
FTQueryResult result_set = db_instance.queryRelational(table, statement);
1 Home
1.1 summary
1.2 System Preparation
1.3 When LunarBase is your best choice
1.4 Benchmark
1.5 Power consumption
2 Data Model And Process
2.1 Why internal big cache
2.2 Memory Management: LunarMMU
2.3 Garbage Collection
2.4 Transaction Log
2.5 JOIN via materialized view
3 Real Time Computation: LunarMax
3.1 In-Memory File System: Memory Estimation
3.2 Configuration
3.3 Use SSD as a cheaper memory
3.4 Data Safety
3.5 HE Server VS. Cluster
3.6 High Availability
4 Create a database
4.1 Three modes
4.2 creation.conf settings
4.3 Table space
4.4 Multiple Instance
4.5 Database Status
4.6 Remove and Restore a table
5 Insertion
5.1 Insert as normal record
5.2 Insert to search engine
6 Query
6.1 Point Query
6.2 Result Handler: register your own event handler
6.3 Interpreter Pattern: complex query conditions
6.4 Range Query
6.5 Full-text Search
6.6 Algebraic Logical Query
8 Deletion
9 Materialized view
9.1 Eventual consistency
9.2 Update
9.3 MVCC in LunarBase
9.4 Easy JOIN via denormalization
9.5 CRUD in view
10 Distributed integration with
10.1 Kafka
10.2 Storm
10.3 Spark
11 Storage: Lunar Virtual File System
13 Roadmap of LunarBase future
15 FAQ