搜索服务
搜索服务广泛的存在于我们身边,例如我们生活中用的百度、工作中用的 wiki 搜索、淘宝时用的商品搜索等。这些场景的数据具有数据量大、结构化、读多写少等特点,而传统的数据库的事务特性在搜索场景并没有很好的使用空间,并且在全文检索方面速度慢(如 like 语句)。因此,Elasticsearch 应运而生。
Elasticsearch 是一个广泛应用于全文搜索领域的开源搜索引擎,它可以快速地索引、搜索和分析海量的文本数据。腾讯云 ES 是基于 Elasticsearch 构建的高可用、可伸缩的云端托管 Elasticsearch 服务,对结构化和非结构化的数据都有良好的支持,同时还提供了简单易用的 REtulfs API 和各种语言的客户端,方便快速搭建稳定的搜索服务。
本文将针对搜索场景,使用腾讯云 ES 官方文档作为语料,介绍如何使用腾讯云 ES + SCF 快速搭建搜索服务。搜索服务界面示例如下:
资源准备
部署搜索服务
使用腾讯云免费的 SCF 工具部署搜索服务的前端界面和后台服务。
1. 在云函数 > 函数服务 界面左上角首先选择您购买 ES 集群的地域。
2. 新建一个函数服务,记住您设置的函数名称其他则可以按照截图内容来选择。
3. 在创建流程下方的高级配置中,将私有网络勾选为启用,VPC 和 ES 集群的 VPC 保持一致。
4. 在函数代码界面,首先将 代码 zip 包 下载到本地。然后在函数代码 > 提交方法中,选择上传本地 zip 包,并选择刚下载的 zip 包,单击保存。
5. 在函数代码页修改代码。需要修改的文件有
index.py
和 index.html
:index.py
中的 es_endpoint
修改为您的 ES 集群的内网地址,填写格式如:http://10.0.3.14:9200
。index.py
中的 es_password
修改为白金版 ES 密码,如果不是白金版则不修改。
index.html
中的 server_name
修改为您创建的 SCF 函数的函数名称,默认为 myserver
。
注意
样例默认使用
es_corpus_0126
作为索引名,请确保该索引没有业务在使用。如需修改,可在 index.py
中修改 es_index
变量。6. 在触发管理页单击创建触发方式,按下图添加 API 网关触发器,并启用集成响应,然后单击保存。
7. 可在触发管理中看到函数的访问路径,单击此路径即可访问页面。
8. 上传 腾讯云 ES 官方文档 样例数据。单击搜索框上方的文字,自动导入数据。
9. 至此,一个简单的基于腾讯云 ES 的问答搜索服务后台已部署完成。