Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

如何使用 Atlas App Services 创建搜索用户界面

在此页面上

  • 先决条件
  • 部署响应式搜索 API
  • 托管搜索用户界面
  • 运行 Atlas Search 查询

本教程介绍如何设置 Atlas Search 并使用 Atlas App Services 通过 Searchbox 构建搜索用户界面 和 ReactiveSearch 用户界面库。它还演示了如何使用 ReactiveSearch App Services 函数端点运行 Atlas Search 查询。

本教程将指导您完成以下步骤:

  1. 部署 ReactiveSearch API 作为 App Services 函数。

  2. Vercel 上托管搜索用户界面 。

  3. 运行 Atlas Search 查询。

开始之前:

  • 确保您的 Atlas 集群满足先决条件中描述的要求。

  • 创建一个名为default的 Atlas Search 索引,该索引使用针对样本数据集中sample_airbnb.listingsAndReviews collection 的动态映射。要了解更多信息,请参阅创建 Atlas Search 搜索索引。

  • 创建 Vercel 帐户。

  • 安装 Vercel CLI。

在本节中,您将部署 ReactiveSearch API 作为 App Services 功能。

1

注意

您需要公共和私有 API 密钥值来部署响应式搜索 API。

要创建 API 密钥并配置 API 密钥的 API 访问列表,请参阅以下页面:

2

注意

如果不设置以下变量,则必须在部署 ReactiveSearch API 时手动指定 API 密钥。

  1. private_key_value替换为您的私有 API 密钥,然后运行以下命令:

    private_key={private_key_value}
  2. public_key_value替换为您的公共 API 密钥,然后运行以下命令:

    public_key={public_key_value}
3
  1. 转到 App Services。

  2. 创建应用。

  3. 查找应用程序 ID。

  4. 从应用程序仪表盘复制 App ID

4

注意

如果不设置以下变量,则在部署 ReactiveSearch API 时必须手动指定应用程序 ID。

app_id_value替换为您的 App Services App ID并运行以下命令:

app_id={app_id_value}
5

运行以下命令克隆 reactivesearch-realm-project 存储库:

git clone https://github.com/appbaseio/reactivesearch-realm-function.git
6
  1. 更改工作目录:

    cd reactivesearch-realm-function
  2. 运行以下命令之一以安装项目依赖项:

    yarn
    npm install
7

注意

如果您未设置环境变量,则必须在部署 ReactiveSearch API 时手动指定 API 密钥和应用程序 ID。

  1. 运行以下命令之一:

    • 要在未启用基本身份验证的情况下部署 ReactiveSearch API,请运行以下命令:

      node rs-cli --private-api-key $private_key --api-key $public_key --app-id $app_id
    • 要部署启用基本身份验证的 Reactive Search API,请将my-usermy-password替换为您的用户名和密码,然后运行以下命令:

      node rs-cli --private-api-key $private_key --api-key &$public_key --app-id $app_id --app-authentication <my-user>:<my-password>

    如果部署成功,输出应类似于以下示例:

    1 Successfully deployed webhook.
    2
    3 Deployed webhook endpoint : https://us-east-1.aws.data.mongodb-api.com/app/application-0-iuzth/endpoint/http_endpoint_reactivesearch
    4
    5 You can make a test request to this webhook using this curl command
    6
    7curl -XPOST https://us-east-1.aws.data.mongodb-api.com/app/application-1-ftcqo/endpoint/http_endpoint_reactivesearch \
    8 -H "Content-Type: application/json" \
    9 -d '{
    10 "query": [{
    11 "id": "search",
    12 "dataField": "*",
    13 "size": 5
    14 }],
    15 "mongodb": {
    16 "db": "'"$database"'",
    17 "collection": "'"$collection"'"
    18 }
    19}'
  2. 从输出中复制 HTTPS 端点(以前的 Webhook)URL(在上一示例中突出显示)。

  3. (可选)从输出中复制 curl 命令,指定数据库和集合(在以下示例中突出显示),然后运行命令以验证 HTTPS 端点:

    1curl -XPOST https://us-east-1.aws.data.mongodb-api.com/app/application-1-ftcqo/endpoint/http_endpoint_reactivesearch \
    2 -H "Content-Type: application/json" \
    3 -d '{
    4 "query": [{
    5 "id": "search",
    6 "dataField": "*",
    7 "size": 5
    8 }],
    9 "mongodb": {
    10 "db": "'"sample_airbnb"'",
    11 "collection": "'"listingsAndReviews"'"
    12 }
    13}'

在本部分中,您将在 Vercel 上托管搜索用户界面 。 ReactiveSearch App Services 函数端点公开一个 REST API,所有 ReactiveSearch 和 Searchbox 用户界面库都使用该 API 来表达声明式搜索意图。

注意

本教程使用facet-filters示例中的示例查询。 by-usecases目录包含其他几个示例。对您想要尝试的任何其他使用案例重复以下步骤。

1
  1. 打开终端并运行以下命令以克隆 searchbox 存储库:

    git clone https://github.com/appbaseio/searchbox.git
  2. 运行以下命令创建临时目录。

    mkdir tmp
  3. 复制本地 搜索用户界面目录 到临时目录:

    cp -R searchbox/packages/react-searchbox/examples/by-usecases/facet-filters tmp
2
  1. 从以下目录打开App.js文件:

    /tmp/facet-filters/src

  2. 将第11行的 URL 替换为您的 HTTPS 端点(以前称为 Webhook)URL 并保存文件。

3
  1. 运行以下命令以更改工作目录:

    cd ../
  2. 运行以下命令之一以构建搜索用户界面应用程序:

    yarn && yarn build
    npm install && npm run build

    该命令会将搜索用户界面文件放置在/tmp/facet-filters/build目录中。

4

要了解更多信息,请参阅 如何使用 Vercel 部署 React 站点。

示例:

运行以下命令并按照提示操作:

vercel

您现在可以使用 ReactiveSearch App Services 功能端点访问托管 URL 并运行 Atlas Search 查询。

1

将返回的预览 URL 复制并粘贴到浏览器中。

2

在 Searchbox 用户界面中查看facet-filter使用案例的搜索查询结果。

← 如何使用 Atlas Search 和 Atlas App Services 构建应用程序