Docs 主页 → 启动和管理 MongoDB → MongoDB Atlas
如何使用 Atlas App Services 创建搜索用户界面
本教程介绍如何设置 Atlas Search 并使用 Atlas App Services 通过 Searchbox 构建搜索用户界面 和 ReactiveSearch 用户界面库。它还演示了如何使用 ReactiveSearch App Services 函数端点运行 Atlas Search 查询。
本教程将指导您完成以下步骤:
部署 ReactiveSearch API 作为 App Services 函数。
在 Vercel 上托管搜索用户界面 。
运行 Atlas Search 查询。
先决条件
开始之前:
确保您的 Atlas 集群满足先决条件中描述的要求。
创建一个名为
default
的 Atlas Search 索引,该索引使用针对样本数据集中的sample_airbnb.listingsAndReviews
collection 的动态映射。要了解更多信息,请参阅创建 Atlas Search 搜索索引。创建 Vercel 帐户。
部署响应式搜索 API
在本节中,您将部署 ReactiveSearch API 作为 App Services 功能。
为您的 Atlas 组织或项目创建 API 密钥并配置 API 访问列表。
注意
您需要公共和私有 API 密钥值来部署响应式搜索 API。
要创建 API 密钥并配置 API 密钥的 API 访问列表,请参阅以下页面:
对于组织,您必须为 API 密钥分配
Organization Member
组织角色或更高级别的角色,并邀请组织 API 密钥加入您的项目。对于项目,您必须为 API 密钥分配
Project Owner
项目角色。
克隆reactivesearch-realm-project
存储库。
运行以下命令克隆 reactivesearch-realm-project 存储库:
git clone https://github.com/appbaseio/reactivesearch-realm-function.git
部署 ReactiveSearch API。
注意
如果您未设置环境变量,则必须在部署 ReactiveSearch API 时手动指定 API 密钥和应用程序 ID。
运行以下命令之一:
要在未启用基本身份验证的情况下部署 ReactiveSearch API,请运行以下命令:
node rs-cli --private-api-key $private_key --api-key $public_key --app-id $app_id 要部署启用基本身份验证的 Reactive Search API,请将
my-user
和my-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 7 curl -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 }' 从输出中复制 HTTPS 端点(以前的 Webhook)URL(在上一示例中突出显示)。
(可选)从输出中复制 curl 命令,指定数据库和集合(在以下示例中突出显示),然后运行命令以验证 HTTPS 端点:
1 curl -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
目录包含其他几个示例。对您想要尝试的任何其他使用案例重复以下步骤。
运行 Atlas Search 查询
您现在可以使用 ReactiveSearch App Services 功能端点访问托管 URL 并运行 Atlas Search 查询。