mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-29 07:06:20 +00:00
feat(vector): add conversion between vector and string (#5029)
* feat(vector): add conversion between vector and string Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix sqlness Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * address comments Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> --------- Signed-off-by: Zhenchi <zhongzc_arch@outlook.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
SELECT vec_to_string(parse_vec('[1.0, 2.0]'));
|
||||
|
||||
+----------------------------------------------+
|
||||
| vec_to_string(parse_vec(Utf8("[1.0, 2.0]"))) |
|
||||
+----------------------------------------------+
|
||||
| [1,2] |
|
||||
+----------------------------------------------+
|
||||
|
||||
SELECT vec_to_string(parse_vec('[1.0, 2.0, 3.0]'));
|
||||
|
||||
+---------------------------------------------------+
|
||||
| vec_to_string(parse_vec(Utf8("[1.0, 2.0, 3.0]"))) |
|
||||
+---------------------------------------------------+
|
||||
| [1,2,3] |
|
||||
+---------------------------------------------------+
|
||||
|
||||
SELECT vec_to_string(parse_vec('[]'));
|
||||
|
||||
+--------------------------------------+
|
||||
| vec_to_string(parse_vec(Utf8("[]"))) |
|
||||
+--------------------------------------+
|
||||
| [] |
|
||||
+--------------------------------------+
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
SELECT vec_to_string(parse_vec('[1.0, 2.0]'));
|
||||
|
||||
SELECT vec_to_string(parse_vec('[1.0, 2.0, 3.0]'));
|
||||
|
||||
SELECT vec_to_string(parse_vec('[]'));
|
||||
@@ -0,0 +1,96 @@
|
||||
SELECT vec_cos_distance('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
+---------------------------------------------------------+
|
||||
| vec_cos_distance(Utf8("[1.0, 2.0]"),Utf8("[0.0, 0.0]")) |
|
||||
+---------------------------------------------------------+
|
||||
| 1.0 |
|
||||
+---------------------------------------------------------+
|
||||
|
||||
SELECT vec_cos_distance(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
+--------------------------------------------------------------------+
|
||||
| vec_cos_distance(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[0.0, 0.0]")) |
|
||||
+--------------------------------------------------------------------+
|
||||
| 1.0 |
|
||||
+--------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_cos_distance('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+--------------------------------------------------------------------+
|
||||
| vec_cos_distance(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+--------------------------------------------------------------------+
|
||||
| 1.0 |
|
||||
+--------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_cos_distance(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+-------------------------------------------------------------------------------+
|
||||
| vec_cos_distance(parse_vec(Utf8("[1.0, 2.0]")),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+-------------------------------------------------------------------------------+
|
||||
| 1.0 |
|
||||
+-------------------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_l2sq_distance('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
+----------------------------------------------------------+
|
||||
| vec_l2sq_distance(Utf8("[1.0, 2.0]"),Utf8("[0.0, 0.0]")) |
|
||||
+----------------------------------------------------------+
|
||||
| 5.0 |
|
||||
+----------------------------------------------------------+
|
||||
|
||||
SELECT vec_l2sq_distance(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
+---------------------------------------------------------------------+
|
||||
| vec_l2sq_distance(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[0.0, 0.0]")) |
|
||||
+---------------------------------------------------------------------+
|
||||
| 5.0 |
|
||||
+---------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_l2sq_distance('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+---------------------------------------------------------------------+
|
||||
| vec_l2sq_distance(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+---------------------------------------------------------------------+
|
||||
| 5.0 |
|
||||
+---------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_l2sq_distance(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+--------------------------------------------------------------------------------+
|
||||
| vec_l2sq_distance(parse_vec(Utf8("[1.0, 2.0]")),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+--------------------------------------------------------------------------------+
|
||||
| 5.0 |
|
||||
+--------------------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_dot_product('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
+--------------------------------------------------------+
|
||||
| vec_dot_product(Utf8("[1.0, 2.0]"),Utf8("[0.0, 0.0]")) |
|
||||
+--------------------------------------------------------+
|
||||
| 0.0 |
|
||||
+--------------------------------------------------------+
|
||||
|
||||
SELECT vec_dot_product(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
+-------------------------------------------------------------------+
|
||||
| vec_dot_product(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[0.0, 0.0]")) |
|
||||
+-------------------------------------------------------------------+
|
||||
| 0.0 |
|
||||
+-------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_dot_product('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+-------------------------------------------------------------------+
|
||||
| vec_dot_product(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+-------------------------------------------------------------------+
|
||||
| 0.0 |
|
||||
+-------------------------------------------------------------------+
|
||||
|
||||
SELECT vec_dot_product(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
|
||||
+------------------------------------------------------------------------------+
|
||||
| vec_dot_product(parse_vec(Utf8("[1.0, 2.0]")),parse_vec(Utf8("[0.0, 0.0]"))) |
|
||||
+------------------------------------------------------------------------------+
|
||||
| 0.0 |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
SELECT vec_cos_distance('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_cos_distance(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_cos_distance('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
SELECT vec_cos_distance(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
|
||||
SELECT vec_l2sq_distance('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_l2sq_distance(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_l2sq_distance('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
SELECT vec_l2sq_distance(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
|
||||
SELECT vec_dot_product('[1.0, 2.0]', '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_dot_product(parse_vec('[1.0, 2.0]'), '[0.0, 0.0]');
|
||||
|
||||
SELECT vec_dot_product('[1.0, 2.0]', parse_vec('[0.0, 0.0]'));
|
||||
|
||||
SELECT vec_dot_product(parse_vec('[1.0, 2.0]'), parse_vec('[0.0, 0.0]'));
|
||||
Reference in New Issue
Block a user