前言|
上一章节,我们从0开始搭建了一个基于腾讯云ES集群的日志分析系统,并通过Kibana图形化工具进行了可视化展示。我们模拟了Logstash收集业务系统的日志并将数据同步到了腾讯ES集群。同时我们也知道Elasticsearch 的几个应用场景。那么今天我就带大家来实现它的第二个常用场景 搜索服务。我们用的框架是:腾讯云 ES SCF 快速构建搜索服务
一、腾讯云 ES SCF 快速构建搜索服务
1, 名词解释:SCF是什么?
英文名:Serverless Cloud Function,SCF。顾名思义:就是没有物理服务器的云函数。就是云产品的一种。我们通过购买这个产品就能在没有底层服务器的情况下去上传、开发、维护自己的代码。因此,我们不需要了解底层构架就能很好的用到我们的函数进而开发我们的产品的服务,称之为SCF,中文名叫云函数。它是函数即服务 (Function as a Service,FaaS)产品。提供无服务器(Serverless) 和 FaaS 的计算平台。运行方式依赖事件触发。因此在和触发事件源结合时,云函数就可以被触发源所产生的事件触发运行。
2,搜索服务
Elasticsearch 是一个广泛应用于全文搜索领域的开源搜索引擎,它可以快速地索引、搜索和分析海量的文本数据。腾讯云 ES 是基于 Elasticsearch 构建的高可用、可伸缩的云端托管 Elasticsearch 服务,对结构化和非结构化的数据都有良好的支持,同时还提供了简单易用的 RESTful API 和各种语言的客户端,方便快速搭建稳定的搜索服务。本文将针对搜索场景,使用腾讯云官方文档作为语料,介绍如何使用腾讯云 ES SCF 快速搭建搜索服务。
3,构建搜索服务
1,资源准备
需要一个 ES 集群,没有集群就需要去腾讯云官网去购买ES集群,节点选型可以参考官方文档: https://cloud.tencent.com/document/product/845/19551
2,部署搜索服务
使用腾讯云免费的 SCF 工具部署搜索服务的前端界面和后台服务。步骤如下:
(1) 在云控制台【云函数】>【函数服务】界面左上角首先选择您购买 ES 集群的地域。
(2) 新建一个函数服务,记住您设置的函数名称,然后选择【下一步】>【完成】。设置参数如下图
(3)运行角色、提交方法等参数如下图所示
(4)附件设置参数如下图 上传官方包(点击下载下面的myserver.zip文件上传到云服务器):
(5)SCF函数完整界面,如下图,点开“函数代码”
在函数代码页修改代码。需要修改的文件有index.py和index.html:
- index.py文件中需要修改为您的 ES 集群的内网地址,填写格式如:http://10.0.0.1:9200
- index.py修改为白金版 ES 密码,如果不是白金版则不修改。
- index.html文件需要修改您创建的 SCF 函数的函数名称,myserver如下图
(4)添加函数的触发条件,点击“触发方式”--“新建触发方式”
(5)添加触发方式:类型、API等参数。在触发方式页单击【添加触发方式】,按下图添加 API 网关触发器,并启用集成响应,然后单击【保存】
在触发方式页单击【添加触发方式】,按下图添加 API 网关触发器,并启用集成响应,然后单击【保存】
(6)可在触发方式中看到函数的“访问路径”,单击此路径即可访问页面。
(7)浏览器访问上面链接,是否能正常访问。如下图显示,访问成功
(8)上传腾讯云官方文档数据,单击搜索框上方的文字,自动导入数据。
(9)搜索数据,基于腾讯云 ES 的问答搜索服务后台已部署完成。
二、总结
搜索服务广泛的存在于我们身边,例如我们生活中用的百度、工作中用的 wiki 搜索、淘宝时用的商品搜索等。这些场景的数据具有数据量大、结构化、读多写少等特点,而传统的数据库的事务特性在搜索场景并没有很好的使用空间,并且在全文检索方面速度慢(如 like 语句)。因此,Elasticsearch 应运而生。
本节基于腾讯云ES、SCF快速构建了一个基于搜索的服务,对于想快速了解此场景的爱好者来说,可以自己动手实践一下。操作很简单。只需要一个ES集群就可以轻松完成。当然。SCF这个产品也是非常强大,功能特别多。大家可以多操作实践。