开放搜索服务(OpenSearch)是一款结构化数据搜索托管服务,为移动应用开发者和网站站长提供简单、高效、稳定、低成本和可扩展的搜索解决方案。通过 OpenSearch 自带功能,可将 RDS 中的数据自动同步至 OpenSearch 实现各类复杂搜索。下面以 OpenSearch 与 RDS 搭配为例介绍开发搜索方案。

前提条件

  • 已开通 OpenSearch 服务
  • 已启用 Access Key

控制台操作步骤

  1. 登录 OpenSearch 管理控制台
  2. OpenSearch 管理控制台 单击 创建应用
  3. 填写基本信息页面填写应用基本信息。
  4. 定义应用结构页面选择自定义结构,定义数据表、设置字段的类型属性。
    说明 您也可以选择预设的应用结构类型。
  5. 单击 继续,定义索引结构、设置字段的搜索属性。
  6. 单击 下一步,选择 数据自动同步,并选择数据来源 RDS,如下图所示。

    开放搜索_附录_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第1张
  7. 填写数据库信息,并选择 数据自动同步授权 OpenSearch 读取 RDS 数据,单击连接数据,如下图所示。

    开放搜索_附录_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第2张
  8. 填写要映射的字段,单击 保存
  9. 单击下一步,确认信息后根据向导完成操作。

API 操作步骤

OpenSearch SDK 支持 java、php 和 .net,同样可以使用 RESTful 风格的 API 调用。

以下以 python 简单演示 OpenSearch 的搜索。

#!/usr/bin/env python
import requests
url = """
http://$host/search?
index_name=bbs&query=config=start:0,hit:10,
format=fulljson&&query=default:'的'&&
filter=create_timestamp>1423000000&&
sort=+type;-RANK&fetch_fields=id;title;body;url;
type;create_timestamp&
first_formula_name=first_bbs&
formula_name=second_bbs&summary=summary_snipped:1,
summary_field:title,summary_element:high,
summary_len:32,summary_ellipsis:...;
summary_snipped:2,summary_field:body,
summary_element:high,summary_len:60,
summary_ellipsis:...
"""
res = requests.get(url)\
print res.json()