---
title: github-fill
description: 基于 OceanBase 构建图搜图应用 背景信息 在当今信息爆炸的时代，用户常需要从海量数据中迅速搜索所需信息。例如在线文献数据库、电商平台产品目录、以及不断增长的多媒体内容库，都需要高效的搜索系统来快速定位到用户感兴趣的内容。随着数据量不断激增，传统的基于关键字的搜索方法已经无法满足用户对于搜索精度和速度的需求，…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.4

# 基于 OceanBase 构建图搜图应用

更新时间：2026-01-23 17:22:12

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/690.practical-tutorial/100.building-a-graph-search-application-based-on-oceanBase.md)  

## 背景信息

在当今信息爆炸的时代，用户常需要从海量数据中迅速搜索所需信息。例如在线文献数据库、电商平台产品目录、以及不断增长的多媒体内容库，都需要高效的搜索系统来快速定位到用户感兴趣的内容。随着数据量不断激增，传统的基于关键字的搜索方法已经无法满足用户对于搜索精度和速度的需求，向量搜索技术应运而生。它通过将文本、图片、音频等不同类型的数据编码为数学上的向量，并在向量空间中进行搜索。这种方法允许系统捕捉数据的深层次语义信息，从而提供更为准确和高效的搜索结果。

本文通过 OceanBase 的向量搜索技术构建您的图搜图应用。

## 图搜图架构

图搜图应用是把图片库以向量形式，存储在数据库内，用户在对应的 UI 界面，上传需要查询的图片，图片会被应用转换为向量，在数据库内查询相似向量，并返回结果，最终以图片形式，在 UI 页面上展示相似图片。

![3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/observer-enterprise/V4.3.3/practical-tutorial/building-a-graph-search-application-based-on-oceanBase.png)

## 前提条件

- 您已部署 OceanBase V4.3.3 及以上版本的集群并且创建了 MySQL 模式租户。更多有关部署 OceanBase 集群的信息，请参见 [部署概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573563)
 - 您所创建的 MySQL 模式租户需要拥有插入及查询的权限。更多有关权限设置的信息，请参见 [直接授予权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576699)。
 - 您已创建数据库。更多有关创建数据库的信息，请参见 [创建数据库](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574066)。
 - 数据库已开启向量搜索功能。更多关于向量搜索功能的信息，请参见 [使用 SQL 快速进行向量搜索](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001579716)。

  ```shell
  obclient> ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30;

  ```
 - 准备自己所需的图片，如果没有足够的图片用于测试效果，可参考各大开源网站的图片数据集。
 - 安装 Python 3.9 及以上版本。
 - 安装 Poetry：

  ```shell
  python3 -m ensurepip
  python3 -m pip install poetry

  ```

## 操作步骤

1. 克隆代码仓库。

   ```shell
   git clone https://github.com/ob-labs/image-search.git
   cd image-search

   ```
 2. 安装依赖。

   ```shell
   poetry install

   ```
 3. 设置环境变量。

   ```shell
   cp .env.example .env
   # 更新 .env 文件中的数据库信息
   vi .env

   ```

   更新 .env 中内容。

   ```shell
   HF_ENDPOINT=https://hf-mirror.com

   DB_HOST="127.0.0.1"   ## 设置对应租户的 IP
   DB_PORT="2881"   ## 设置对应的端口
   DB_USER="root@test" ## 设置对应的租户及用户名
   DB_NAME="test"   ## 设置对应的数据库名
   DB_PASSWORD=""  ## 设置对应的租户用户的密码

   ```
 4. 上传准备的图片至服务器上。
 5. 启动图搜图程序。

   ```shell
   poetry run streamlit run --server.runOnSave false image_search_ui.py

   ```

   返回结果如下：

   ```shell
   Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.

       You can now view your Streamlit app in your browser.

       Local URL: http://localhost:8501
       Network URL: http://xxx.xxx.xxx.xxx:8501
       External URL: http://xxx.xxx.xxx.xxx:8501

   ```
 6. 打开图搜图对应的 UI 界面。可根据实际情况，打开上述第 5 步中对应的 URL。
 7. 在 **图片加载设置**下，**图片加载目录**内填写服务器上图片所存放目录的绝对路径。
 8. 点击 **加载图片**。
 9. 等图片加载完成后即可进行图搜图操作。

## 应用展示

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/observer-enterprise/V4.3.3/practical-tutorial/210081E9-D03F-492d-B286-4E09FB7A2511.png)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
