You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kvrocks.apache.org by tw...@apache.org on 2024/10/05 14:58:35 UTC

(kvrocks) branch twice/search-readme created (now 9cc28148)

This is an automated email from the ASF dual-hosted git repository.

twice pushed a change to branch twice/search-readme
in repository https://gitbox.apache.org/repos/asf/kvrocks.git


      at 9cc28148 chore(search): update README to add some references for KQIR

This branch includes the following new commits:

     new 9cc28148 chore(search): update README to add some references for KQIR

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(kvrocks) 01/01: chore(search): update README to add some references for KQIR

Posted by tw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

twice pushed a commit to branch twice/search-readme
in repository https://gitbox.apache.org/repos/asf/kvrocks.git

commit 9cc28148b43c693a6efe1fbcc63d6d6985ba9de6
Author: Twice <tw...@gmail.com>
AuthorDate: Sat Oct 5 22:58:27 2024 +0800

    chore(search): update README to add some references for KQIR
---
 src/search/README.md | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/search/README.md b/src/search/README.md
index 65c2bacc..022ec750 100644
--- a/src/search/README.md
+++ b/src/search/README.md
@@ -1,27 +1,34 @@
-## KQIR: Kvrocks Query Intermediate Representation
+## KQIR (a.k.a. Kvrocks Search): Kvrocks Query Intermediate Representation
 
 Here, *KQIR* refers to both
 - the multiple-level *query intermediate representation* for Apache Kvrocks, and
 - the *architecture and toolset* for the query optimization and execution.
 
+Note that when interacting with users, we also refer to KQIR as *Kvrocks Search* to prevent overwhelming with excessive technical information.
+
 ### Architecture
 
 ![Architecture of KQIR](../../assets/KQIR.png)
 
 ### Components
 
-- User Interface: both SQL and Redis Query syntax is supported to be the frontend language of KQIR
+- User Interface: both SQL and RediSearch Query syntax is supported to be the frontend language of KQIR
   - SQL Parser: A parser that accepts an extended subset of MySQL syntax
-  - Redis Query Parser: A parser that accepts [Redis query syntax](https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/query_syntax/) (only DIALECT 2 or greater is planned to be supported)
+  - Redis Query Parser: A parser that accepts [RediSearch query syntax](https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/query_syntax/) (only DIALECT 2 or greater is planned to be supported)
 - KQIR: a multiple level query intermediate representation, currently including two levels (syntactical IR and planning IR)
   - Syntactical IR: A high level IR that syntactically represents the query language
   - Planning IR: A low level IR that represents plan operators for query execution
 - KQIR passes: analysis and transformation procedures on KQIR
   - Semantic Checker: to check if there is any semantic errors in the IR
-  - Expression Passes: passes for query expressions, especially for logical expressions
-  - Numeric Passes: passes for numeric & arithmetic properties
-  - Plan Passes: passes on the plan operators
+  - Expression Passes: passes for query expressions, especially for logical/boolean expressions
+  - Numeric Passes: passes for numeric & arithmetic expressions utilizing math properties
+  - Planning Passes: passes on the plan operators for scheduling a better execution plan
   - Pass Manager: to manage the pass execution sequence and order
-  - Cost Model: to analyze the cost for the current plan, used by some plan passes
-- Plan Executor: a component for query execution via iterator model
+  - Cost Model: to analyze the cost for the current plan, used by some planning passes
+- Plan Executor: a component for query execution via the iterator model
 - Indexer: to perform the indexing for various types of fields during data changes
+
+### References
+
+- [KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries](https://kvrocks.apache.org/blog/kqir-query-engine)
+- [Index encoding format for Kvrocks Search](https://kvrocks.apache.org/community/kvrocks-search-index-encoding)