tencent cloud

文档反馈

SCF + ES 快速构建搜索服务

最后更新时间:2023-04-27 17:50:37

    搜索服务

    搜索服务广泛的存在于我们身边,例如我们生活中用的百度、工作中用的 wiki 搜索、淘宝时用的商品搜索等。这些场景的数据具有数据量大、结构化、读多写少等特点,而传统的数据库的事务特性在搜索场景并没有很好的使用空间,并且在全文检索方面速度慢(如 like 语句)。因此,Elasticsearch 应运而生。
    Elasticsearch 是一个广泛应用于全文搜索领域的开源搜索引擎,它可以快速地索引、搜索和分析海量的文本数据。腾讯云 ES 是基于 Elasticsearch 构建的高可用、可伸缩的云端托管 Elasticsearch 服务,对结构化和非结构化的数据都有良好的支持,同时还提供了简单易用的 RESTful API 和各种语言的客户端,方便快速搭建稳定的搜索服务。
    本文将针对搜索场景,使用腾讯云 ES 官方文档作为语料,介绍如何使用腾讯云 ES+SCF 快速搭建搜索服务。

    资源准备

    只需要一个 ES 集群。在腾讯云购买一个 ES 集群,集群的规模根据搜索服务的 QPS 和存入的文档的数据量而定。具体可参考 集群规格和容量配置评估

    部署搜索服务

    使用腾讯云 SCF 部署搜索服务的前端界面和后台服务。
    1. 云函数 > 函数服务 界面左上角首先选择您购买 ES 集群的地域。
    
    2. 单击新建,创建一个函数服务,操作详情见创建函数
    3. 函数创建完成后,单击函数名称进入函数详情页。
    4. 函数配置页单击右上角的编辑,开启内网访问,并选择您创建 ES 所选的 VPC,然后单击保存
    
    5. 单击代码 zip 包将示例文件下载到本地。
    6. 函数代码页的提交方法中选择上传本地 zip 包,并选择刚下载的 zip 包,单击部署
    
    7. 函数代码页修改代码。需要修改的文件有 index.pyindex.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 变量。
    8. 触发方式页单击添加触发方式,按下图添加 API 网关触发器,并启用集成响应,然后单击保存
    
    9. 触发方式中查看函数的“访问路径”,单击此路径即可访问页面。
    
    10. 上传 腾讯云 ES 官方文档 样例数据。单击搜索框上方的文字,自动导入数据。
    11. 至此,一个简单的基于腾讯云 ES 的问答搜索服务后台已部署完成。

    了解更多

    停用词和用户词典导入

    停用词不会被 ES 检索,用户词典在分词时将保留该词。在上面的案例中,我们导入了默认的 停用词库用户词典,您也可以在 ES 集群详情页的插件列表 >更新词典导入自己的停用词和用户词典。

    同义词配置

    同义词配置需要在创建索引时指定,支持 Solr 和 WordNet 两种同义词格式,具体可参考 Solr synonyms 对格式的介绍。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持