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

hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git


The following commit(s) were added to refs/heads/main by this push:
     new a20d7aeb Add bydbctl and web-ui interacting guide. (#507)
a20d7aeb is described below

commit a20d7aeb1ac41a96a2dac9d354622309e8c11c2e
Author: Wan Kai <[email protected]>
AuthorDate: Fri Aug 9 06:44:04 2024 +0800

    Add bydbctl and web-ui interacting guide. (#507)
    
    * Add bydbctl and web-ui interacting guide.
---
 CHANGES.md                                         |   2 +
 docs/concept/data-model.md                         |   2 +-
 docs/crud/measure/query.md                         |  65 ------
 docs/crud/stream/query.md                          |  61 ------
 docs/interacting/bydbctl/bydbctl.md                |  20 ++
 docs/{crud => interacting/bydbctl}/property.md     |   7 +-
 docs/interacting/bydbctl/query/filter-operation.md |  92 +++++++++
 docs/interacting/bydbctl/query/measure.md          | 223 +++++++++++++++++++++
 docs/interacting/bydbctl/query/stream.md           | 205 +++++++++++++++++++
 docs/{crud => interacting/bydbctl/schema}/group.md |   6 +-
 .../bydbctl/schema/index-rule-binding.md}          |   6 +-
 .../bydbctl/schema/index-rule.md}                  |  20 +-
 .../bydbctl/schema/measure.md}                     |   6 +-
 .../bydbctl/schema/stream.md}                      |   6 +-
 .../bydbctl/schema/top-n-aggregation.md            |  20 ++
 docs/interacting/java-client.md                    |   3 +
 docs/interacting/web-ui/dashboard.md               |   9 +
 docs/interacting/web-ui/property.md                |  11 +
 docs/interacting/web-ui/query/measure.md           |  17 ++
 docs/interacting/web-ui/query/stream.md            |  13 ++
 docs/interacting/web-ui/schema/group.md            |  18 ++
 .../web-ui/schema/index-rule-binding.md            |  17 ++
 docs/interacting/web-ui/schema/index-rule.md       |  17 ++
 docs/interacting/web-ui/schema/measure.md          |  20 ++
 docs/interacting/web-ui/schema/stream.md           |  20 ++
 .../interacting/web-ui/schema/top-n-aggregation.md |  16 ++
 docs/menu.yml                                      | 118 ++++++-----
 27 files changed, 830 insertions(+), 190 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 7389aaae..255c30dd 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -43,6 +43,8 @@ Release Notes.
 - Introduce new doc menu structure.
 - Add installation on Docker and Kubernetes.
 - Add quick-start guide.
+- Add web-ui interacting guide.
+- Add bydbctl interacting guide.
 
 ### Chores
 
diff --git a/docs/concept/data-model.md b/docs/concept/data-model.md
index 732119f7..06726eb3 100644
--- a/docs/concept/data-model.md
+++ b/docs/concept/data-model.md
@@ -6,7 +6,7 @@ This chapter introduces BanyanDB's data models and covers the 
following:
 * data model
 * data retrieval
 
-You can also find [examples](../crud/) of how to interact with BanyanDB using 
[bydbctl](../clients.md#command-line), how to create and drop groups, or how to 
create, read, update and drop streams/measures.
+You can also find [examples](../interacting/bydbctl/schema) of how to interact 
with BanyanDB using [bydbctl](../interacting/bydbctl/bydbctl.md), how to create 
and drop groups, or how to create, read, update and drop streams/measures.
 
 ## Structure of BanyanDB
 
diff --git a/docs/crud/measure/query.md b/docs/crud/measure/query.md
deleted file mode 100644
index e4a5dcc5..00000000
--- a/docs/crud/measure/query.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Query Measures
-
-Query operation queries the data in a measure.
-
-[`bydbctl`](../../clients.md#command-line) is the command line tool in 
examples.
-
-The input contains two parts:
-
-* Request: a YAML-based text which is defined by the [API](#api-reference)
-* Time Range: YAML and CLI's flags both support it.
-
-## Time Range
-
-The query specification contains `time_range` field. The request should set 
absolute times to it.
-`bydbctl` also provides `start` and `end` flags to support passing absolute 
and relative times.
-
-"start" and "end" specify a time range during which the query is performed, 
they can be an absolute time like 
["2006-01-02T15:04:05Z07:00"](https://www.rfc-editor.org/rfc/rfc3339),
-or relative time (to the current time) like "-30m", or "30m".
-They are both optional and their default values follow the rules below:
-
-* when "start" and "end" are both absent, "start = now - 30 minutes" and "end 
= now",
-namely past 30 minutes;
-* when "start" is absent and "end" is present, this command calculates "start" 
(minus 30 units),
-e.g. "end = 2022-11-09T12:34:00Z", so "start = end - 30 minutes = 
2022-11-09T12:04:00Z";
-* when "start" is present and "end" is absent, this command calculates "end" 
(plus 30 units),
-e.g. "start = 2022-11-09T12:04:00Z", so "end = start + 30 minutes = 
2022-11-09T12:34:00Z".
-
-## Examples
-
-To retrieve a series of data points between `2022-10-15T22:32:48Z` and 
`2022-10-15T23:32:48Z` could use the below command. These data points contain 
tags: `id` and `entity_id` that belong to a family `default`. They also choose 
fields: `total` and `value`.
-
-```shell
-bydbctl measure query -f - <<EOF
-name: "service_cpm_minute"
-groups: ["measure-minute"]
-tagProjection:
-  tagFamilies:
-    - name: "default"
-      tags: ["entity_id"]
-fieldProjection:
-  names: ["total", "value"]
-timeRange:
-  begin: 2022-10-15T22:32:48Z
-  end: 2022-10-15T23:32:48Z
-EOF
-```
-
-The below command could query data in the last 10 minutes using relative time 
duration :
-
-```shell
-bydbctl measure query --start -10m -f - <<EOF
-name: "service_cpm_minute"
-groups: ["measure-minute"]
-tagProjection:
-  tagFamilies:
-    - name: "default"
-      tags: ["entity_id"]
-fieldProjection:
-  names: ["total", "value"]
-EOF
-```
-
-## API Reference
-
-[MeasureService v1](../../api-reference.md#measureservice)
diff --git a/docs/crud/stream/query.md b/docs/crud/stream/query.md
deleted file mode 100644
index 3cf9fc37..00000000
--- a/docs/crud/stream/query.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Query Streams
-
-Query operation queries the data in a stream.
-
-[`bydbctl`](../../clients.md#command-line) is the command line tool in 
examples.
-
-The input contains two parts:
-
-* Request: a YAML-based text which is defined by the [API](#api-reference)
-* Time Range: YAML and CLI's flags both support it.
-
-## Time Range
-
-The query specification contains `time_range` field. The request should set 
absolute times to it.
-`bydbctl` also provides `start` and `end` flags to support passing absolute 
and relative times.
-
-"start" and "end" specify a time range during which the query is performed, 
they can be an absolute time like 
["2006-01-02T15:04:05Z07:00"](https://www.rfc-editor.org/rfc/rfc3339),
-or relative time (to the current time) like "-30m", or "30m".
-They are both optional and their default values follow the rules below:
-
-* when "start" and "end" are both absent, "start = now - 30 minutes" and "end 
= now",
-namely past 30 minutes;
-* when "start" is absent and "end" is present, this command calculates "start" 
(minus 30 units),
-e.g. "end = 2022-11-09T12:34:00Z", so "start = end - 30 minutes = 
2022-11-09T12:04:00Z";
-* when "start" is present and "end" is absent, this command calculates "end" 
(plus 30 units),
-e.g. "start = 2022-11-09T12:04:00Z", so "end = start + 30 minutes = 
2022-11-09T12:34:00Z".
-
-## Examples
-
-To retrieve elements in a stream named `sw` between `2022-10-15T22:32:48Z` and 
`2022-10-15T23:32:48Z` could use the below command. These elements also choose 
a tag `trace_id` which lives in a family named `searchable`.
-
-```shell
-bydbctl stream query -f - <<EOF
-groups: ["stream-segment"]
-name: "segment"
-projection:
-  tagFamilies:
-    - name: "searchable"
-      tags: ["trace_id"]
-timeRange:
-  begin: 2022-10-15T22:32:48+08:00
-  end: 2022-10-15T23:32:48+08:00
-EOF
-```
-
-The below command could query data in the last 30 minutes using relative time 
duration :
-
-```shell
-bydbctl stream query --start -30m -f - <<EOF
-groups: ["stream-segment"]
-name: "segment"
-projection:
-  tagFamilies:
-    - name: "searchable"
-      tags: ["trace_id"]
-EOF
-```
-
-## API Reference
-
-[StreamService v1](../../api-reference.md#streamservice)
diff --git a/docs/interacting/bydbctl/bydbctl.md 
b/docs/interacting/bydbctl/bydbctl.md
new file mode 100644
index 00000000..90c0f466
--- /dev/null
+++ b/docs/interacting/bydbctl/bydbctl.md
@@ -0,0 +1,20 @@
+# bydbctl
+`bydbctl` is the command line tool for interacting with BanyanDB. It is a 
powerful tool that can be used to create, update, read, and delete schemas. It 
can also be used to query data stored in streams, measures, and properties.
+
+These are several ways to install:
+
+* Get binaries from [download](https://skywalking.apache.org/downloads/).
+* Build from 
[sources](https://github.com/apache/skywalking-banyandb/tree/main/bydbctl) to 
get latest features.
+
+The config file named `.bydbctl.yaml` will be created in `$HOME` folder after 
the first CRUD command is applied.
+```shell
+> more ~/.bydbctl.yaml
+addr: http://127.0.0.1:17913
+group: ""
+```
+
+`bydbctl` leverages HTTP endpoints to retrieve data instead of gRPC.
+
+## HTTP client
+
+Users could select any HTTP client to access the HTTP based endpoints. The 
default address is `localhost:17913/api`
\ No newline at end of file
diff --git a/docs/crud/property.md b/docs/interacting/bydbctl/property.md
similarity index 94%
rename from docs/crud/property.md
rename to docs/interacting/bydbctl/property.md
index 2b2d5804..2aec93f5 100644
--- a/docs/crud/property.md
+++ b/docs/interacting/bydbctl/property.md
@@ -1,10 +1,10 @@
-# CRUD Property
+# CRUD [Property](../../concept/data-model.md#properties)
 
 CRUD operations create/update, read and delete property.
 
 Property stores the user defined data.
 
-[`bydbctl`](../clients.md#command-line) is the command line tool in examples.
+[bydbctl](bydbctl.md) is the command line tool in examples.
 
 ## Apply (Create/Update) operation
 
@@ -76,6 +76,7 @@ tags:
     str:
       value: "failed"
 ttl: "1h"
+EOF
 ```
 
 ## Get operation
@@ -169,4 +170,4 @@ bydbctl property keepalive --lease_id 1
 
 ## API Reference
 
-[MeasureService v1](../api-reference.md#PropertyService)
+[PropertyService v1](../../api-reference.md#propertyservice)
diff --git a/docs/interacting/bydbctl/query/filter-operation.md 
b/docs/interacting/bydbctl/query/filter-operation.md
new file mode 100644
index 00000000..7283c7e5
--- /dev/null
+++ b/docs/interacting/bydbctl/query/filter-operation.md
@@ -0,0 +1,92 @@
+# Filter Operation
+
+Filter operation is a part of the query configuration. It is used to filter 
the data based on the given condition for [Stream](stream.md) and 
[Measure](measure.md) queries.
+
+The condition is a combination of the tag name, operation, and value. 
+The operation's root is Criteria which is defined in the [API 
Reference](../../../api-reference.md#criteria).
+
+The following are the examples of filter operations:
+
+## [Condition.BinaryOp](../../../api-reference.md#conditionbinaryop)
+
+### EQ, NE, LT, GT, LE and GE
+EQ, NE, LT, GT, LE and GE, only one operand should be given, i.e. one-to-one 
relationship.
+
+```shell
+criteria:
+  condition:
+    name: "entity_id"
+    op: "BINARY_OP_EQ"
+    value:
+      str:
+        value: "entity_1"
+```
+
+### IN and NOT_IN
+HAVING and NOT_HAVING allow multi-value to be the operand such as 
array/vector, i.e. one-to-many relationship.
+
+```shell
+criteria:
+  condition:
+    name: "entity_id"
+    op: "BINARY_OP_IN"
+    value:
+      str_array:
+        value: ["entity_1", "entity_2", "unknown"]
+```
+
+### HAVING and NOT_HAVING
+HAVING and NOT_HAVING allow multi-value to be the operand such as 
array/vector, i.e. one-to-many relationship. For example, "keyA" contains 
"valueA" and "valueB"
+
+```shell
+criteria:
+  condition:
+    name: "extended_tags"
+    op: "BINARY_OP_HAVING"
+    value:
+      strArray:
+        value: ["c", "b"]
+```
+
+### MATCH
+MATCH performances a full-text search if the tag is analyzed.
+The string value applies to the same analyzer as the tag, but string array 
value does not.
+Each item in a string array is seen as a token instead of a query expression.
+
+How to set the analyzer for a tag can find in the 
[IndexRules](../schema/index-rule.md).
+
+```shell
+criteria:
+  condition:
+    name: "name"
+    op: "BINARY_OP_MATCH"
+    value:
+      str:
+        value: "us"
+```
+
+## 
[LogicalExpression.LogicalOp](../../../api-reference.md#logicalexpressionlogicalop)
+Logical operation is used to combine multiple conditions.
+
+### AND, OR
+The following example queries the data where the `id` is `1` and the 
`service_id` is `service_1`
+
+```shell
+criteria:
+  le:
+    op: "LOGICAL_OP_AND"
+    right:
+      condition:
+        name: "id"
+        op: "BINARY_OP_EQ"
+        value:
+          str:
+            value: "1"
+    left:
+      condition:
+        name: "service_id"
+        op: "BINARY_OP_EQ"
+        value:
+          str:
+            value: "service_1"
+```
diff --git a/docs/interacting/bydbctl/query/measure.md 
b/docs/interacting/bydbctl/query/measure.md
new file mode 100644
index 00000000..5baa76ba
--- /dev/null
+++ b/docs/interacting/bydbctl/query/measure.md
@@ -0,0 +1,223 @@
+# Query [Measures](../../../concept/data-model.md#measures)
+
+Query operation queries the data in a measure.
+
+[bydbctl](../bydbctl.md) is the command line tool in examples.
+
+The input contains two parts:
+
+* Request: a YAML-based text which is defined by the [API](#api-reference)
+* Time Range: YAML and CLI's flags both support it.
+
+## Time Range
+
+The query specification contains `time_range` field. The request should set 
absolute times to it.
+`bydbctl` also provides `start` and `end` flags to support passing absolute 
and relative times.
+
+"start" and "end" specify a time range during which the query is performed, 
they can be an absolute time like 
["2006-01-02T15:04:05Z07:00"](https://www.rfc-editor.org/rfc/rfc3339),
+or relative time (to the current time) like "-30m", or "30m".
+They are both optional and their default values follow the rules below:
+
+* when "start" and "end" are both absent, "start = now - 30 minutes" and "end 
= now",
+namely past 30 minutes;
+* when "start" is absent and "end" is present, this command calculates "start" 
(minus 30 units),
+e.g. "end = 2022-11-09T12:34:00Z", so "start = end - 30 minutes = 
2022-11-09T12:04:00Z";
+* when "start" is present and "end" is absent, this command calculates "end" 
(plus 30 units),
+e.g. "start = 2022-11-09T12:04:00Z", so "end = start + 30 minutes = 
2022-11-09T12:34:00Z".
+
+## Understand the schema you are querying
+Before querying the data, you need to know the measure name and the tag 
families and fields in the measure. You can use the `bydbctl measure get` 
command to get the measure schema.
+If you want to get the schema of a measure named `service_cpm_minute` in the 
group `measure-minute`, you can use the below command:
+```shell
+bydbctl measure get -g measure-minute -n service_cpm_minute
+```
+```shell
+measure:
+  entity:
+    tagNames:
+    - entity_id
+  fields:
+  - compressionMethod: COMPRESSION_METHOD_ZSTD
+    encodingMethod: ENCODING_METHOD_GORILLA
+    fieldType: FIELD_TYPE_INT
+    name: value
+  - compressionMethod: COMPRESSION_METHOD_ZSTD
+    encodingMethod: ENCODING_METHOD_GORILLA
+    fieldType: FIELD_TYPE_INT
+    name: total
+  interval: 1m
+  metadata:
+    createRevision: "206"
+    group: measure-minute
+    id: 0
+    modRevision: "206"
+    name: service_cpm_minute
+  tagFamilies:
+  - name: storage-only
+    tags:
+    - indexedOnly: false
+      name: entity_id
+      type: TAG_TYPE_STRING
+  updatedAt: null
+```
+
+## Examples
+The following examples use above schema to show how to query data in a measure 
and cover some common use cases:
+
+### Query between specific time range
+To retrieve a series of data points between `2022-10-15T22:32:48Z` and 
`2022-10-15T23:32:48Z` could use the below command. These data points contain 
tags: `id` and `entity_id` that belong to a family `default`. They also choose 
fields: `total` and `value`.
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+timeRange:
+  begin: 2022-10-15T22:32:48Z
+  end: 2022-10-15T23:32:48Z
+EOF
+```
+
+### Query using relative time duration
+The below command could query data in the last 30 minutes using relative time 
duration :
+
+```shell
+bydbctl measure query --start -30m -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+EOF
+```
+
+### Query with filter
+The below command could query data with a filter where the entity_id is 
`bW9ja19iX3NlcnZpY2U=.1`:
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+criteria:
+  condition:
+    name: "entity_id"
+    op: "BINARY_OP_EQ"
+    value:
+      str:
+        value: "bW9ja19iX3NlcnZpY2U=.1"
+EOF
+```
+
+More filter operations can be found in [here](filter-operation.md).
+
+### Query ordered by time-series
+The below command could query data order by time-series in descending 
[order](../../../api-reference.md#sort) :
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+orderBy:
+  sort: "SORT_DESC"
+EOF
+```
+
+### Query limit result
+The below command could query ordered data and return the first two results:
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+orderBy:
+  sort: "SORT_DESC"
+limit: 2
+offset: 0
+EOF
+```
+
+### Aggregation Query Max
+The below command could query data with aggregate by entity_id and get `MAX` 
value:
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+groupBy:
+  tagProjection:
+    tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+  fieldName: "value"
+agg:
+  function: "AGGREGATION_FUNCTION_MAX"
+  fieldName: "value"
+EOF
+```
+
+### Aggregation Query TopN
+The below command could query data with aggregate by entity_id and get `AVG` 
top 3 value:
+
+```shell
+bydbctl measure query -f - <<EOF
+name: "service_cpm_minute"
+groups: ["measure-minute"]
+tagProjection:
+  tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+fieldProjection:
+  names: ["value"]
+groupBy:
+  tagProjection:
+    tagFamilies:
+    - name: "storage-only"
+      tags: ["entity_id"]
+  fieldName: "value"
+agg:
+  function: "AGGREGATION_FUNCTION_MEAN"
+  fieldName: "value"
+top:
+  number: 3
+  fieldName: "value"
+  fieldValueSort: "SORT_DESC"
+EOF
+```
+
+### More examples can be found in 
[here](https://github.com/apache/skywalking-banyandb/tree/main/test/cases/measure/data/input).
+
+## API Reference
+
+[MeasureService v1](../../../api-reference.md#measureservice)
diff --git a/docs/interacting/bydbctl/query/stream.md 
b/docs/interacting/bydbctl/query/stream.md
new file mode 100644
index 00000000..c2d56a62
--- /dev/null
+++ b/docs/interacting/bydbctl/query/stream.md
@@ -0,0 +1,205 @@
+# Query [Streams](../../../concept/data-model.md#streams)
+
+Query operation queries the data in a stream.
+
+[bydbctl](../bydbctl.md) is the command line tool in examples.
+
+The input contains two parts:
+
+* Request: a YAML-based text which is defined by the [API](#api-reference)
+* Time Range: YAML and CLI's flags both support it.
+
+## Time Range
+
+The query specification contains `time_range` field. The request should set 
absolute times to it.
+`bydbctl` also provides `start` and `end` flags to support passing absolute 
and relative times.
+
+"start" and "end" specify a time range during which the query is performed, 
they can be an absolute time like 
["2006-01-02T15:04:05Z07:00"](https://www.rfc-editor.org/rfc/rfc3339),
+or relative time (to the current time) like "-30m", or "30m".
+They are both optional and their default values follow the rules below:
+
+* when "start" and "end" are both absent, "start = now - 30 minutes" and "end 
= now",
+  namely past 30 minutes;
+* when "start" is absent and "end" is present, this command calculates "start" 
(minus 30 units),
+  e.g. "end = 2022-11-09T12:34:00Z", so "start = end - 30 minutes = 
2022-11-09T12:04:00Z";
+* when "start" is present and "end" is absent, this command calculates "end" 
(plus 30 units),
+  e.g. "start = 2022-11-09T12:04:00Z", so "end = start + 30 minutes = 
2022-11-09T12:34:00Z".
+
+
+## Understand the schema you are querying
+Before querying the data, you need to know the stream name and the tag 
families and fields in the stream. You can use the `bydbctl stream get` command 
to get the stream schema.
+for example, if you want to get the schema of a stream named `segment` in the 
group `stream-segment`, you can use the below command:
+```shell
+bydbctl stream get -g stream-segment -n segment
+```
+```shell
+stream:
+  entity:
+    tagNames:
+    - service_id
+    - service_instance_id
+    - is_error
+  metadata:
+    createRevision: "100"
+    group: stream-segment
+    id: 0
+    modRevision: "100"
+    name: segment
+  tagFamilies:
+  - name: storage-only
+    tags:
+    - indexedOnly: false
+      name: service_id
+      type: TAG_TYPE_STRING
+    - indexedOnly: false
+      name: service_instance_id
+      type: TAG_TYPE_STRING
+    - indexedOnly: false
+      name: start_time
+      type: TAG_TYPE_INT
+    - indexedOnly: false
+      name: is_error
+      type: TAG_TYPE_INT
+    - indexedOnly: false
+      name: data_binary
+      type: TAG_TYPE_DATA_BINARY
+  - name: searchable
+    tags:
+    - indexedOnly: false
+      name: segment_id
+      type: TAG_TYPE_STRING
+    - indexedOnly: false
+      name: trace_id
+      type: TAG_TYPE_STRING
+    - indexedOnly: false
+      name: endpoint_id
+      type: TAG_TYPE_STRING
+    - indexedOnly: false
+      name: latency
+      type: TAG_TYPE_INT
+    - indexedOnly: true
+      name: tags
+      type: TAG_TYPE_STRING_ARRAY
+  updatedAt: null
+```
+
+## Examples
+The following examples use above schema to show how to query data in a stream 
and cover some common use cases:
+
+### Query between specific time range
+To retrieve elements in a stream named `sw` between `2022-10-15T22:32:48Z` and 
`2022-10-15T23:32:48Z` could use the below command. These elements also choose 
a tag `trace_id` which lives in a family named `searchable`.
+
+```shell
+bydbctl stream query -f - <<EOF
+groups: ["stream-segment"]
+name: "segment"
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["trace_id"]
+timeRange:
+  begin: 2022-10-15T22:32:48+08:00
+  end: 2022-10-15T23:32:48+08:00
+EOF
+```
+
+### Query using relative time duration
+The below command could query data in the last 30 minutes using relative time 
duration :
+
+```shell
+bydbctl stream query --start -30m -f - <<EOF
+groups: ["stream-segment"]
+name: "segment"
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["trace_id"]
+EOF
+```
+
+### Query with filter
+The below command could query data with a filter where the service_id is 
`bW9ja19iX3NlcnZpY2U=.1`:
+
+```shell
+bydbctl stream query -f - <<EOF
+name: "segment"
+groups: ["stream-segment"]
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["service_id", "trace_id", "latency"]
+criteria:
+  condition:
+    name: "service_id"
+    op: "BINARY_OP_EQ"
+    value:
+      str:
+        value: "bW9ja19iX3NlcnZpY2U=.1"
+EOF
+```
+
+More filter operations can be found in [here](filter-operation.md).
+
+### Query ordered by time-series
+The below command could query data order by time-series in descending 
[order](../../../api-reference.md#sort) :
+
+```shell
+bydbctl stream query -f - <<EOF
+name: "segment"
+groups: ["stream-segment"]
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["trace_id", "latency"]
+    - name: "storage-only"
+      tags: ["start_time", "data_binary"]
+orderBy:
+  sort: "SORT_DESC"
+EOF
+```
+
+### Query ordered by index (searchable tag)
+The below command could query data order by index in descending 
[order](../../../api-reference.md#sort) :
+
+```shell
+bydbctl stream query -f - <<EOF
+name: "segment"
+groups: ["stream-segment"]
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["trace_id", "latency"]
+    - name: "storage-only"
+      tags: ["start_time", "data_binary"]
+orderBy:
+  indexRuleName: "latency"
+  sort: "SORT_DESC"
+EOF
+```
+
+### Query limit result
+The below command could query ordered data and return the first two results:
+
+```shell
+bydbctl stream query -f - <<EOF
+name: "segment"
+groups: ["stream-segment"]
+projection:
+  tagFamilies:
+    - name: "searchable"
+      tags: ["trace_id", "latency"]
+    - name: "storage-only"
+      tags: ["start_time", "data_binary"]
+orderBy:
+  indexRuleName: "latency"
+  sort: "SORT_DESC"
+limit: 2
+offset: 0
+EOF
+```
+
+### More examples can be found in 
[here](https://github.com/apache/skywalking-banyandb/tree/main/test/cases/stream/data/input).
+
+## API Reference
+
+[StreamService v1](../../../api-reference.md#streamservice)
diff --git a/docs/crud/group.md b/docs/interacting/bydbctl/schema/group.md
similarity index 88%
rename from docs/crud/group.md
rename to docs/interacting/bydbctl/schema/group.md
index b61e56cb..e4f9c51c 100644
--- a/docs/crud/group.md
+++ b/docs/interacting/bydbctl/schema/group.md
@@ -1,10 +1,10 @@
-# CRUD Groups
+# CRUD [Groups](../../../concept/data-model.md#groups)
 
 CRUD operations create, read, update and delete groups.
 
 The group represents a collection of a class of resources. Each resource has a 
name unique to a group.
 
-[`bydbctl`](../clients.md#command-line) is the command line tool in examples.
+[bydbctl](../bydbctl.md) is the command line tool in examples.
 
 ## Create operation
 
@@ -87,4 +87,4 @@ bydbctl group list
 ```
 
 ## API Reference
-[GroupService v1](../api-reference.md#groupservice)
+[Group Registration Operations](../../../api-reference.md#groupregistryservice)
diff --git a/docs/crud/index_rule_binding.md 
b/docs/interacting/bydbctl/schema/index-rule-binding.md
similarity index 92%
rename from docs/crud/index_rule_binding.md
rename to docs/interacting/bydbctl/schema/index-rule-binding.md
index 79c01c2a..22345834 100644
--- a/docs/crud/index_rule_binding.md
+++ b/docs/interacting/bydbctl/schema/index-rule-binding.md
@@ -1,11 +1,11 @@
-# CRUD IndexRuleBindings
+# CRUD 
[IndexRuleBindings](../../../concept/data-model.md#indexrule--indexrulebinding)
 
 CRUD operations create, read, update and delete index rule bindings.
 
 An index rule binding is a bridge to connect several index rules to a subject.
 This binding is valid between `begin_at_nanoseconds` and 
`expire_at_nanoseconds`, that provides flexible strategies to control how to 
generate time series indices.
 
-[`bydbctl`](../clients.md#command-line) is the command line tool in examples.
+[bydbctl](../bydbctl.md) is the command line tool in examples.
 
 ## Create operation
 
@@ -134,4 +134,4 @@ bydbctl indexRuleBinding list -g sw_stream
 
 ## API Reference
 
-[indexRuleBindingService 
v1](../api-reference.md#IndexRuleBindingRegistryService)
\ No newline at end of file
+[IndexRuleBinding Registration 
Operations](../../../api-reference.md#indexrulebindingregistryservice)
\ No newline at end of file
diff --git a/docs/crud/index_rule.md 
b/docs/interacting/bydbctl/schema/index-rule.md
similarity index 76%
rename from docs/crud/index_rule.md
rename to docs/interacting/bydbctl/schema/index-rule.md
index 842d5a0a..c15d8ff4 100644
--- a/docs/crud/index_rule.md
+++ b/docs/interacting/bydbctl/schema/index-rule.md
@@ -1,11 +1,11 @@
-# CRUD IndexRules
+# CRUD [IndexRules](../../../concept/data-model.md#indexrule--indexrulebinding)
 
 CRUD operations create, read, update and delete index rules.
 
 IndexRule defines how to generate indices based on tags and the index type.
 IndexRule should bind to a subject(stream or measure) through an 
IndexRuleBinding to generate proper indices.
 
-[`bydbctl`](../clients.md#command-line) is the command line tool in examples.
+[bydbctl](../bydbctl.md) is the command line tool in examples.
 
 ## Create operation
 
@@ -53,6 +53,20 @@ EOF
 
 This YAML creates an index rule which uses the tag `trace_id` to generate a 
`TYPE_INVERTED` index.
 
+The `analyzer` field is optional. If it is not set, the default value is 
`ANALYZER_UNSPECIFIED`.
+We can set it to `ANALYZER_KEYWORD` to specify the analyzer. More analyzers 
can refer to the [API Reference](../../../api-reference.md#indexruleanalyzer).
+```shell
+bydbctl indexRule create -f - <<EOF
+metadata:
+  name: trace_id
+  group: sw_stream
+tags:
+- trace_id
+type: TYPE_INVERTED
+analyzer: ANALYZER_KEYWORD
+EOF
+```
+
 ## Get operation
 
 Get(Read) operation gets an index rule's schema.
@@ -105,4 +119,4 @@ bydbctl indexRule list -g sw_stream
 
 ## API Reference
 
-[indexRuleService v1](../api-reference.md#IndexRuleRegistryService)
+[IndexRule Registration 
Operations](../../../api-reference.md#indexruleregistryservice)
diff --git a/docs/crud/measure/schema.md 
b/docs/interacting/bydbctl/schema/measure.md
similarity index 91%
rename from docs/crud/measure/schema.md
rename to docs/interacting/bydbctl/schema/measure.md
index 9de09086..698a1f74 100644
--- a/docs/crud/measure/schema.md
+++ b/docs/interacting/bydbctl/schema/measure.md
@@ -1,8 +1,8 @@
-# CRUD Measures
+# CRUD [Measures](../../../concept/data-model.md#measures)
 
 CRUD operations create, read, update and delete measures.
 
-[`bydbctl`](../../clients.md#command-line) is the command line tool in 
examples.
+[bydbctl](../bydbctl.md) is the command line tool in examples.
 
 ## Create operation
 
@@ -120,4 +120,4 @@ bydbctl measure list -g sw_metric
 
 ## API Reference
 
-[MeasureService v1](../../api-reference.md#MeasureService)
+[Measure Registration 
Operations](../../../api-reference.md#measureregistryservice)
diff --git a/docs/crud/stream/schema.md 
b/docs/interacting/bydbctl/schema/stream.md
similarity index 90%
rename from docs/crud/stream/schema.md
rename to docs/interacting/bydbctl/schema/stream.md
index d9375dd5..8ae9da01 100644
--- a/docs/crud/stream/schema.md
+++ b/docs/interacting/bydbctl/schema/stream.md
@@ -1,8 +1,8 @@
-# CRUD Streams
+# CRUD [Streams](../../../concept/data-model.md#streams)
 
 CRUD operations create, read, update and delete streams.
 
-[`bydbctl`](../../clients.md#command-line) is the command line tool in 
examples.
+[bydbctl](../bydbctl.md) is the command line tool in examples.
 
 Stream intends to store streaming data, for example, traces or logs.
 ## Create operation
@@ -109,4 +109,4 @@ bydbctl stream list -g default
 
 ## API Reference
 
-[StreamService v1](../../api-reference.md#streamservice)
+[Stream Registration 
Operations](../../../api-reference.md#streamregistryservice)
diff --git a/docs/interacting/bydbctl/schema/top-n-aggregation.md 
b/docs/interacting/bydbctl/schema/top-n-aggregation.md
new file mode 100644
index 00000000..a6b4e70e
--- /dev/null
+++ b/docs/interacting/bydbctl/schema/top-n-aggregation.md
@@ -0,0 +1,20 @@
+# CRUD [TopNAggregation](../../../concept/data-model.md#topnaggregation) on 
the Web UI
+
+CRUD operations create, read, update and delete groups.
+
+The group represents a collection of a class of resources. Each resource has a 
name unique to a group.
+
+[bydbctl](../bydbctl.md) is the command line tool in examples.
+When you in the `Measure` tab, you can view the list of top-n-aggregations in 
the specific group.
+
+![top-n-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-get.png)
+
+## Create Top-N-Aggregation
+You can create a new top-n-aggregation by clicking the right button of the 
mouse on the `Top-N-Aggregation` category and select the `new topn-agg` button.
+
+![img.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-add.png)
+
+## Update/Delete Top-N-Aggregation
+You can click the `edit topn-agg/delete` button on a specific 
top-n-aggregation to modify/delete the top-n-aggregation:
+
+![top-n-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-edit.png)
\ No newline at end of file
diff --git a/docs/interacting/java-client.md b/docs/interacting/java-client.md
new file mode 100644
index 00000000..338fa48a
--- /dev/null
+++ b/docs/interacting/java-client.md
@@ -0,0 +1,3 @@
+# Java Client
+
+The java native client is hosted at 
[skywalking-banyandb-java-client](https://github.com/apache/skywalking-banyandb-java-client).
\ No newline at end of file
diff --git a/docs/interacting/web-ui/dashboard.md 
b/docs/interacting/web-ui/dashboard.md
new file mode 100644
index 00000000..d74f31b0
--- /dev/null
+++ b/docs/interacting/web-ui/dashboard.md
@@ -0,0 +1,9 @@
+# Dashboard
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+On the dashboard page, You can view the BanyanDB running status, including the 
nodes' info and resource usage.
+This feature requires setting the `observability-modes` flag to `native` when 
starting the BanyanDB server. More details can be found in the 
[observability](../../observability.md) document.
+
+![dashboard](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/dashboard.png)
+
+
diff --git a/docs/interacting/web-ui/property.md 
b/docs/interacting/web-ui/property.md
new file mode 100644
index 00000000..858a1468
--- /dev/null
+++ b/docs/interacting/web-ui/property.md
@@ -0,0 +1,11 @@
+# CRUD [Property](../../concept/data-model.md#Properties) on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+![web-ui-property.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/web-ui-property.png)
+
+The property page shows the data stored in the property. The menu on the left 
side shows the list of properties organized by the groups.
+
+You can select the group to view the property data, the data is displayed in a 
table format and can view/edit/delete the property by the following:
+- Click the `View` to show the value in the specific property and key.
+- Click the `Edit` to `add/update/delete` the tags in the specific property.
+- Click the `Delete` to delete the specific property.
\ No newline at end of file
diff --git a/docs/interacting/web-ui/query/measure.md 
b/docs/interacting/web-ui/query/measure.md
new file mode 100644
index 00000000..2b3e1106
--- /dev/null
+++ b/docs/interacting/web-ui/query/measure.md
@@ -0,0 +1,17 @@
+# Query [Measures](../../../concept/data-model.md#measures) on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+You can query the data stored in the measure on the Web UI.
+
+When you select the `Measure` on the top tab, the left side menu will show the 
list of measure groups. 
+Under the group, in the `Measure` category, you can view the list of measure 
in the group.
+
+![web-ui-measure.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/web-ui-measure.png)
+
+The measure page shows the data stored in the measure. The menu on the left 
side shows the list of measures, index-rule, index-rule-binding and organized 
by their groups.
+
+You can select the specific measure to view the data, the data is displayed in 
a table format and can query/filter the data by the following:
+- Select the `Time Range` to be queried.
+- Select the `Tag Families` to be queried.
+- Select the `Fields` to be queried.
+- Modify/Write the query config directly on the page. The config can refer to 
the [bydbctl query measure](../../bydbctl/query/measure.md).
\ No newline at end of file
diff --git a/docs/interacting/web-ui/query/stream.md 
b/docs/interacting/web-ui/query/stream.md
new file mode 100644
index 00000000..b17114e9
--- /dev/null
+++ b/docs/interacting/web-ui/query/stream.md
@@ -0,0 +1,13 @@
+# Query [Streams](../../../concept/data-model.md#streams)
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+You can query the data stored in the stream on the Web UI.
+
+When you select the `Stream` on the top tab, the left side menu will show the 
list of stream groups.
+Under the group, in the `Stream` category, you can view the list of streams in 
the group.
+
+![web-ui-stream.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/web-ui-stream.png)
+You can select the specific stream to view the data, the data is displayed in 
a table format and can query/filter the data by the following:
+- Select the `Time Range` to be queried.
+- Select the `Tag Families` to be queried.
+- Modify/Write the query config directly on the page. The config can refer to 
the [bydbctl query stream](../../bydbctl/query/stream.md).
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/group.md 
b/docs/interacting/web-ui/schema/group.md
new file mode 100644
index 00000000..82b704a0
--- /dev/null
+++ b/docs/interacting/web-ui/schema/group.md
@@ -0,0 +1,18 @@
+# CRUD [Groups](../../../concept/data-model.md#groups) on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+## Get Groups
+When you select the `Stream`, `Measure`, or `Property` on the top tab, the 
left side menu will show the list of groups.
+
+You can click the right button of the mouse on the group to 
`creat/update/refresh/delete` the group.
+![group-button.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/group-button.png)
+
+## Create Group
+You can click the `new group` button to add a group. The group type can be 
`stream`, `measure`, or `property`.
+
+![img.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/group-add.png)
+
+## Update/Delete Group
+You can click the `edit group/delete` button on a specific group to 
modify/delete the group:
+
+![group-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/group-edit.png)
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/index-rule-binding.md 
b/docs/interacting/web-ui/schema/index-rule-binding.md
new file mode 100644
index 00000000..120b613a
--- /dev/null
+++ b/docs/interacting/web-ui/schema/index-rule-binding.md
@@ -0,0 +1,17 @@
+# CRUD 
[IndexRuleBindings](../../../concept/data-model.md#indexrule--indexrulebinding) 
on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+## Get IndexRuleBindings
+When you in the `Stream` or `Measure` tab, you can view the list of 
index-rule-bindings in the specific group.
+
+![index-rule-binding-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-binding-get.png)
+
+## Create IndexRuleBinding
+You can create a new index-rule-binding by clicking the right button of the 
mouse on the `index-rule-binding` category and select the `new 
index-rule-binding` button.
+
+![index-rule-binding-add.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-binding-add.png)
+
+## Update/Delete IndexRuleBinding
+You can click the `edit index-rule-binding/delete` button on a specific 
index-rule-binding to modify/delete the index-rule-binding:
+
+![index-rule-binding-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-binding-edit.png)
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/index-rule.md 
b/docs/interacting/web-ui/schema/index-rule.md
new file mode 100644
index 00000000..57f3a23c
--- /dev/null
+++ b/docs/interacting/web-ui/schema/index-rule.md
@@ -0,0 +1,17 @@
+# CRUD 
[IndexRules](../../../concept/data-model.md#indexrule--indexrulebinding) on the 
Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+## Get IndexRules
+When you in the `Stream` or `Measure` tab, you can view the list of 
index-rules in the specific group.
+
+![index-rule-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-get.png)
+
+## Create IndexRule
+You can create a new index-rule by clicking the right button of the mouse on 
the `index-rule` category and select the `new index-rule` button.
+
+![index-rule-add.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-add.png)
+
+## Update/Delete IndexRule
+You can click the `edit index-rule/delete` button on a specific index-rule to 
modify/delete the index-rule:
+
+![index-rule-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/index-rule-edit.png)
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/measure.md 
b/docs/interacting/web-ui/schema/measure.md
new file mode 100644
index 00000000..a85d1730
--- /dev/null
+++ b/docs/interacting/web-ui/schema/measure.md
@@ -0,0 +1,20 @@
+# CRUD [Measures](../../../concept/data-model.md#measures) on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+## Get Measures
+When you select the `Measure` on the top tab, the left side menu will show the 
list of measure groups.
+Under the group, in the `Measure` category, you can view the list of measure 
in the group.
+
+![measure-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/measure-get.png)
+
+## Create Measure
+You can create a new measure by clicking the right button of the mouse on the 
`measure` category and select the `new resources` button.
+
+![measure-add.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/measure-add.png)
+
+## Update/Delete Measure
+You can click the `edit resources/delete` button on a specific stream to 
modify/delete the schema:
+
+![measure-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/measure-edit.png)
+
+In this page, you can `add/edit/delete` the tag families and fields in the 
measure. 
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/stream.md 
b/docs/interacting/web-ui/schema/stream.md
new file mode 100644
index 00000000..085f6c22
--- /dev/null
+++ b/docs/interacting/web-ui/schema/stream.md
@@ -0,0 +1,20 @@
+# CRUD [Streams](../../../concept/data-model.md#streams) on the Web UI
+The Web UI is hosted at [skywalking-banyandb-webapp](http://localhost:17913/) 
when you boot up the BanyanDB server.
+
+## Get Streams
+When you select the `Stream` on the top tab, the left side menu will show the 
list of stream groups.
+Under the group, in the `Stream` category, you can view the list of streams in 
the group.
+
+![stream-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/stream-get.png)
+
+## Create Stream
+You can create a new stream by clicking the right button of the mouse on the 
`stream` category and select the `new resources` button.
+
+![img.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/stream-add.png)
+
+## Update/Delete Stream
+You can click the `edit resources/delete` button on a specific stream to 
modify/delete the schema:
+
+![stream-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/stream-edit.png)
+
+In this page, you can `add/edit/delete` the tag families in the stream. 
\ No newline at end of file
diff --git a/docs/interacting/web-ui/schema/top-n-aggregation.md 
b/docs/interacting/web-ui/schema/top-n-aggregation.md
new file mode 100644
index 00000000..94afaa13
--- /dev/null
+++ b/docs/interacting/web-ui/schema/top-n-aggregation.md
@@ -0,0 +1,16 @@
+# CRUD [TopNAggregation](../../../concept/data-model.md#topnaggregation) on 
the Web UI
+
+## Get Top-N-Aggregation
+When you in the `Measure` tab, you can view the list of top-n-aggregations in 
the specific group.
+
+![top-n-get.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-get.png)
+
+## Create Top-N-Aggregation
+You can create a new top-n-aggregation by clicking the right button of the 
mouse on the `Top-N-Aggregation` category and select the `new topn-agg` button.
+
+![img.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-add.png)
+
+## Update/Delete Top-N-Aggregation
+You can click the `edit topn-agg/delete` button on a specific 
top-n-aggregation to modify/delete the top-n-aggregation:
+
+![top-n-edit.png](https://skywalking.apache.org/doc-graph/banyandb/v0.7.0/web-ui/top-n-edit.png)
\ No newline at end of file
diff --git a/docs/menu.yml b/docs/menu.yml
index 539747a0..071524b5 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -20,56 +20,84 @@ catalog:
     path: "/readme"
   - name: "User Guide"
     catalog:
-    - name: "Installation"
-      catalog:
-        - name: "Get Binaries"
-          path: "/installation/binaries"
-        - name: "Standalone Mode"
-          path: "/installation/standalone"
-        - name: "Cluster Mode"
-          path: "/installation/cluster"
-        - name: "Installation On Docker"
-          path: "/installation/docker"
-        - name: "Installation On Kubernetes"
-          path: "/installation/kubernetes"
-    - name: "Basic Concepts and Terminology"
-      catalog:
-        - name: "Data Model"
-          path: "/concept/data-model"
-    - name: "Quick Start Tutorial"
-      path: "/guides/quick-start/quick-start"
+      - name: "Installation"
+        catalog:
+          - name: "Get Binaries"
+            path: "/installation/binaries"
+          - name: "Standalone Mode"
+            path: "/installation/standalone"
+          - name: "Cluster Mode"
+            path: "/installation/cluster"
+          - name: "Installation On Docker"
+            path: "/installation/docker"
+          - name: "Installation On Kubernetes"
+            path: "/installation/kubernetes"
+      - name: "Basic Concepts and Terminology"
+        catalog:
+          - name: "Data Model"
+            path: "/concept/data-model"
+      - name: "Quick Start Tutorial"
+        path: "/guides/quick-start/quick-start"
   - name: "Interacting"
     catalog:
-      - name: "Clients"
-        path: "/clients"
-      - name: "Insert and Update Data"
-        path: ""
-      - name: "Querying Data"
-        path: ""
-      - name: "Deleting Data"
-        path: ""
-      - name: "CRUD Operations"
+      - name: "CLI"
+        catalog:
+          - name: "bydbctl"
+            path: "/interacting/bydbctl/bydbctl"
+          - name: "CRUD Schema"
+            catalog:
+              - name: "Group"
+                path: "/interacting/bydbctl/schema/group"
+              - name: "Measure"
+                path: "/interacting/bydbctl/schema/measure"
+              - name: "Stream"
+                path: "/interacting/bydbctl/schema/stream"
+              - name: "IndexRule"
+                path: "/interacting/bydbctl/schema/index-rule"
+              - name: "IndexRuleBinding"
+                path: "/interacting/bydbctl/schema/index-rule-binding"
+          - name: "Querying Data"
+            catalog:
+              - name: "Measure"
+                path: "/interacting/bydbctl/query/measure"
+              - name: "Stream"
+                path: "/interacting/bydbctl/query/stream"
+              - name: "Filter Operation"
+                path: "/interacting/bydbctl/query/filter-operation"
+          - name: "CRUD Property"
+            path: "/interacting/bydbctl/property"
+      - name: "Java Client"
+        path: "/interacting/java-client"
+      - name: "Web UI"
         catalog:
-          - name: "Group"
-            path: "/crud/group"
-          - name: "Measure"
+          - name: "Dashboard"
+            path: "/interacting/web-ui/dashboard"
+          - name: "CRUD Schema"
             catalog:
-              - name: "Schema"
-                path: "/crud/measure/schema"
-              - name: "Query"
-                path: "/crud/measure/query"
-          - name: "Stream"
+              - name: "Group"
+                path: "/interacting/web-ui/schema/group"
+              - name: "Measure"
+                path: "/interacting/web-ui/schema/measure"
+              - name: "Stream"
+                path: "/interacting/web-ui/schema/stream"
+              - name: "IndexRule"
+                path: "/interacting/web-ui/schema/index-rule"
+              - name: "IndexRuleBinding"
+                path: "/interacting/web-ui/schema/index-rule-binding"
+              - name: "Top N Aggregation"
+                path: "/interacting/web-ui/schema/top-n-aggregation"
+          - name: "Querying Data"
             catalog:
-              - name: "Schema"
-                path: "/crud/stream/schema"
-              - name: "Query"
-                path: "/crud/stream/query"
-          - name: "IndexRule"
-            path: "/crud/index_rule"
-          - name: "IndexRuleBinding"
-            path: "/crud/index_rule_binding"
-          - name: "Property"
-            path: "/crud/property"
+              - name: "Measure"
+                path: "/interacting/web-ui/query/measure"
+              - name: "Stream"
+                path: "/interacting/web-ui/query/stream"
+          - name: "CRUD Property"
+            path: "/interacting/web-ui/property"
+          - name: "Java Client"
+            path: "/interacting/java-client"
+          - name: "Web UI"
+        path: "/interacting/web-ui"
   - name: "Operation and Maintenance"
     catalog:
       - name: "Configure BanyanDB"

Reply via email to