TomShawn commented on code in PR #307:
URL: https://github.com/apache/cloudberry-site/pull/307#discussion_r2286836720


##########
i18n/zh/docusaurus-plugin-content-docs/version-2.x/advanced-analytics/pgvector-search.md:
##########
@@ -0,0 +1,422 @@
+---
+title: Use pgvector for Vector Similarity Search
+---
+
+# 使用pgvector进行向量相似度搜索
+
+pgvector 是一个开源的向量相似度搜索插件。它支持精确和近似的最近邻搜索,以及 L2 距离、内积和余弦距离。更多详情可参考: 
[pgvector/pgvector: Open-source vector similarity search for 
Postgres](https://github.com/pgvector/pgvector). 
+
+Apache Cloudberry 允许用户通过 SQL 语句使用 pgvector 进行数据存储、查询、索引、混合搜索等操作。本文将介绍如何在 
Apache Cloudberry 中使用 pgvector。
+
+:::note
+
+虽然 pgvector 扩展由专门的 pgvector 社区维护,但 Cloudberry 致力于确保其在我们平台上的兼容性和易用性。这里提供了一个 
[pgvector 版本](https://github.com/cloudberry-contrib/pgvector)分支,该分支由社区成员贡献并针对 
Cloudberry 进行了定制,请注意,该分支不属于 Cloudberry 的官方维护项目。
+:::
+
+## 快速开始
+
+启用扩展(在每个需要使用的数据库中执行一次):
+
+``` sql
+CREATE EXTENSION vector;
+```
+
+创建一个具有 3 个维度的向量列:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+插入向量数据:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+通过 L2 距离获取最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+注意: 使用 `<#>` 表示内积,使用 `<=>` 表示余弦距离。
+
+## 存储数据
+
+创建一个带有向量列的表:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+或者在已有的表中添加一个向量列:
+
+``` sql
+ALTER TABLE items ADD COLUMN embedding vector(3);
+```
+
+插入向量:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+插入并更新向量:
+
+``` sql
+INSERT INTO items (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
+    ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
+```
+
+更新向量:
+
+``` sql
+UPDATE items SET embedding = '[1,2,3]' WHERE id = 1;
+```
+
+删除向量:
+
+``` sql
+DELETE FROM items WHERE id = 1;
+```
+
+## 查询数据
+
+获取与某个向量的最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+支持的距离函数包括:
+
+-   `<->`: L2 距离
+-   `<#>`: 负内积
+-   `<=>`: 余弦距离
+
+获取某一行的最近邻数据:
+
+``` sql
+SELECT * FROM items WHERE id != 1 ORDER BY embedding <-> (SELECT embedding 
FROM items WHERE id = 1) LIMIT 5;
+```
+
+获取在特定距离范围内的行:
+
+``` sql
+SELECT * FROM items WHERE embedding <-> '[3,1,2]' < 5;
+```
+
+注意:`ORDER BY` 和 `LIMIT` 一起使用时可以利用索引。
+
+获取距离:
+
+``` sql
+SELECT embedding <-> '[3,1,2]' AS distance FROM items;
+```
+
+对于内积,需要乘以 `-1`(因为 `<#>` 返回的是负内积)。
+
+``` sql
+SELECT (embedding <#> '[3,1,2]') * -1 AS inner_product FROM items;
+```
+
+对于余弦相似度,可以用 `1` 减去余弦距离。
+
+``` sql
+SELECT 1 - (embedding <=> '[3,1,2]') AS cosine_similarity FROM items;
+```
+
+计算向量的平均值:
+
+``` sql
+SELECT AVG(embedding) FROM items;
+```
+
+计算一组向量的平均值:
+
+``` sql
+SELECT category_id, AVG(embedding) FROM items GROUP BY category_id;
+```
+
+## 索引数据
+
+默认情况下,pgvector 会执行精确的最近邻搜索,这能够提供较高的召回率。
+
+如果需要更高的召回率,可以通过添加索引来使用近似最近邻搜索,但这可能会降低性能。与常规索引不同的是,添加近似索引后,**查询结果可能会不同**。
+
+pgvector 支持以下索引类型:
+
+-   HNSW
+-   IVFFlat

Review Comment:
   This is a global comment.
   ```suggestion
   - HNSW
   - IVFFlat
   ```



##########
i18n/zh/docusaurus-plugin-content-docs/version-2.x/advanced-analytics/pgvector-search.md:
##########
@@ -0,0 +1,422 @@
+---
+title: Use pgvector for Vector Similarity Search
+---
+
+# 使用pgvector进行向量相似度搜索
+
+pgvector 是一个开源的向量相似度搜索插件。它支持精确和近似的最近邻搜索,以及 L2 距离、内积和余弦距离。更多详情可参考: 
[pgvector/pgvector: Open-source vector similarity search for 
Postgres](https://github.com/pgvector/pgvector). 
+
+Apache Cloudberry 允许用户通过 SQL 语句使用 pgvector 进行数据存储、查询、索引、混合搜索等操作。本文将介绍如何在 
Apache Cloudberry 中使用 pgvector。
+
+:::note
+
+虽然 pgvector 扩展由专门的 pgvector 社区维护,但 Cloudberry 致力于确保其在我们平台上的兼容性和易用性。这里提供了一个 
[pgvector 版本](https://github.com/cloudberry-contrib/pgvector)分支,该分支由社区成员贡献并针对 
Cloudberry 进行了定制,请注意,该分支不属于 Cloudberry 的官方维护项目。
+:::
+
+## 快速开始
+
+启用扩展(在每个需要使用的数据库中执行一次):
+
+``` sql
+CREATE EXTENSION vector;
+```
+
+创建一个具有 3 个维度的向量列:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+插入向量数据:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+通过 L2 距离获取最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+注意: 使用 `<#>` 表示内积,使用 `<=>` 表示余弦距离。
+
+## 存储数据
+
+创建一个带有向量列的表:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+或者在已有的表中添加一个向量列:
+
+``` sql
+ALTER TABLE items ADD COLUMN embedding vector(3);
+```
+
+插入向量:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+插入并更新向量:
+
+``` sql
+INSERT INTO items (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
+    ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
+```
+
+更新向量:
+
+``` sql
+UPDATE items SET embedding = '[1,2,3]' WHERE id = 1;
+```
+
+删除向量:
+
+``` sql
+DELETE FROM items WHERE id = 1;
+```
+
+## 查询数据
+
+获取与某个向量的最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+支持的距离函数包括:
+
+-   `<->`: L2 距离
+-   `<#>`: 负内积
+-   `<=>`: 余弦距离
+
+获取某一行的最近邻数据:
+
+``` sql
+SELECT * FROM items WHERE id != 1 ORDER BY embedding <-> (SELECT embedding 
FROM items WHERE id = 1) LIMIT 5;
+```
+
+获取在特定距离范围内的行:
+
+``` sql
+SELECT * FROM items WHERE embedding <-> '[3,1,2]' < 5;
+```
+
+注意:`ORDER BY` 和 `LIMIT` 一起使用时可以利用索引。
+
+获取距离:
+
+``` sql
+SELECT embedding <-> '[3,1,2]' AS distance FROM items;
+```
+
+对于内积,需要乘以 `-1`(因为 `<#>` 返回的是负内积)。
+
+``` sql
+SELECT (embedding <#> '[3,1,2]') * -1 AS inner_product FROM items;
+```
+
+对于余弦相似度,可以用 `1` 减去余弦距离。
+
+``` sql
+SELECT 1 - (embedding <=> '[3,1,2]') AS cosine_similarity FROM items;
+```
+
+计算向量的平均值:
+
+``` sql
+SELECT AVG(embedding) FROM items;
+```
+
+计算一组向量的平均值:
+
+``` sql
+SELECT category_id, AVG(embedding) FROM items GROUP BY category_id;
+```
+
+## 索引数据
+
+默认情况下,pgvector 会执行精确的最近邻搜索,这能够提供较高的召回率。
+
+如果需要更高的召回率,可以通过添加索引来使用近似最近邻搜索,但这可能会降低性能。与常规索引不同的是,添加近似索引后,**查询结果可能会不同**。
+
+pgvector 支持以下索引类型:
+
+-   HNSW
+-   IVFFlat
+
+### HNSW index
+
+**关于 HNSW**

Review Comment:
   ```suggestion
   **关于 HNSW**
   
   ```



##########
i18n/zh/docusaurus-plugin-content-docs/version-2.x/advanced-analytics/pgvector-search.md:
##########
@@ -0,0 +1,422 @@
+---
+title: Use pgvector for Vector Similarity Search
+---
+
+# 使用pgvector进行向量相似度搜索
+
+pgvector 是一个开源的向量相似度搜索插件。它支持精确和近似的最近邻搜索,以及 L2 距离、内积和余弦距离。更多详情可参考: 
[pgvector/pgvector: Open-source vector similarity search for 
Postgres](https://github.com/pgvector/pgvector). 
+
+Apache Cloudberry 允许用户通过 SQL 语句使用 pgvector 进行数据存储、查询、索引、混合搜索等操作。本文将介绍如何在 
Apache Cloudberry 中使用 pgvector。
+
+:::note
+
+虽然 pgvector 扩展由专门的 pgvector 社区维护,但 Cloudberry 致力于确保其在我们平台上的兼容性和易用性。这里提供了一个 
[pgvector 版本](https://github.com/cloudberry-contrib/pgvector)分支,该分支由社区成员贡献并针对 
Cloudberry 进行了定制,请注意,该分支不属于 Cloudberry 的官方维护项目。
+:::
+
+## 快速开始
+
+启用扩展(在每个需要使用的数据库中执行一次):
+
+``` sql
+CREATE EXTENSION vector;
+```
+
+创建一个具有 3 个维度的向量列:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+插入向量数据:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+通过 L2 距离获取最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+注意: 使用 `<#>` 表示内积,使用 `<=>` 表示余弦距离。
+
+## 存储数据
+
+创建一个带有向量列的表:
+
+``` sql
+CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
+```
+
+或者在已有的表中添加一个向量列:
+
+``` sql
+ALTER TABLE items ADD COLUMN embedding vector(3);
+```
+
+插入向量:
+
+``` sql
+INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
+```
+
+插入并更新向量:
+
+``` sql
+INSERT INTO items (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
+    ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;
+```
+
+更新向量:
+
+``` sql
+UPDATE items SET embedding = '[1,2,3]' WHERE id = 1;
+```
+
+删除向量:
+
+``` sql
+DELETE FROM items WHERE id = 1;
+```
+
+## 查询数据
+
+获取与某个向量的最近邻数据:
+
+``` sql
+SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
+```
+
+支持的距离函数包括:
+
+-   `<->`: L2 距离
+-   `<#>`: 负内积
+-   `<=>`: 余弦距离
+
+获取某一行的最近邻数据:
+
+``` sql
+SELECT * FROM items WHERE id != 1 ORDER BY embedding <-> (SELECT embedding 
FROM items WHERE id = 1) LIMIT 5;
+```
+
+获取在特定距离范围内的行:
+
+``` sql
+SELECT * FROM items WHERE embedding <-> '[3,1,2]' < 5;
+```
+
+注意:`ORDER BY` 和 `LIMIT` 一起使用时可以利用索引。
+
+获取距离:
+
+``` sql

Review Comment:
   This is a global comment.
   ````suggestion
   ```sql
   ````



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to