《Elastic Stack 实战手册》——三、产品能力——3.2.核心应用场景——3.2.1.企业搜索 (3) https://developer.aliyun.com/article/1231678
支持查询优化
App Search 创建引擎时可选择语言,App Search 会针对不同的语言自动进行优化。优化内容包括词干匹配、字符匹配、短语匹配、排版容忍度等。App Search 支持查询关键字推荐/自动完成功能。当用户输入部分关键字时,App Search 可根据引擎中已有的数据,推荐关键词,用户通过选用更合适的关键字,获取更精准的搜索结果。如下代码根据文档中 title 和 states字段内容提供 car 关键词的推荐关键词:
curl -X POST 'https://[instance id].ent-search.[region].[provider].cloud.es.io/api/as/v1/engines/national-parks-demo/query_suggestion' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer search-7eud55t7ecdmqzcanjsc9cqu' \ -d '{ "query": "car", "types": { "documents": { "fields": [ "title", "states" ] } }, "size": 3 }'
结果提供 3 个推荐关键词为:carlsbad、carlsbad caverns、carolina
{ "results":{ "documents":[ { "suggestion":"carlsbad" }, { "suggestion":"carlsbad caverns" }, { "suggestion":"carolina" } ] }, "meta":{ "request_id":"914f909793379ed5af9379b4401f19be" } }
App Search 支持同义词配置,可通过设置同义词,使用同义词查询得到需要的结果。如下代码将 summit、peak、cliff、moutain 设置为同义词:
curl -X POST 'https://[instance id].ent-search.[region].[provider].cloud.es.io/api/as/v1/engines/national-parks-demo/synonyms' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \ -d '{ "synonyms": ["summit", "peak", "cliff", "mountain"] }
Enterprise Search 支持记录查询分析日志 API Log,方便对用户搜索情况,如搜索结果、搜索性能、搜索异常等进行分析和优化,不断改善用户搜索体验,形成正向反馈。
支持代码集成
Enterprise Search 提供了 Enterprise Search Python Client 和 Enterprise Search Ruby Client,可比较方便的使用 Python 和 Ruby 代码对 Enterprise Search 进行集成。
提供搜索框UI
Elastic 企业搜索提供了连接 App Search 的 React 用户搜索交互界面,直接下载导入即可使用,省去了不少前端代码工作量,对有搜索框需求,但无特别要求的前端应用来说也是一个不错的选择。Site Search则只需要用户在自己的网站上实施几行代码即可添加好由Elasticsearc-h 提供支持的搜索框。
总结
企业搜索的业务场景决定了企业搜索的特点和需求,Elastic 在 Elasticsearch 强大功能的基础之上,构建了更加易用的企业搜索解决方案 Elastic Enterprise Search。Elastic Enterprise
Search 针对企业搜索场景,提供了从自身部署到权限控制、从文档接入到查询优化、从前端 UI 到结果控制的全场景覆盖的支持能力,虽然其相比自己构建一套企业搜索系统的门槛已非常低,易用性也非常好,但毕竟是一套接口完善、功能众多、相对复杂的系统。以上内容仅简单介绍其基本能力,如需将其应用于生产环境,还需结合实际业务需求,仔细阅读相关文档并进行深入研究和实践。
注:本文中代码片段及配图来自 https://www.elastic.co/
参考文档
l Enterprise Search Guide [8.2]:
l https://www.elastic.co/guide/en/enterprise-search/current/index.html
l Workplace Search Guide [8.2]:
l https://www.elastic.co/guide/en/workplace-search/current/index.html
l App Search Guide [8.2].:
l https://www.elastic.co/guide/en/app-search/current/index.html
创作人简介:
朱永生,现任上海闪马智能科技有限公司运维总监,拥有超过十五年技术运维经验,曾服务于多家上市公司和初创企业,负责网络游戏、广告、在线教育、金融科技等业务的全线运维工作和运维团队,擅长数据库和运维系统架构优化、运维自动化平台建设及DevOps 相关的文化理念流程和技术系统。
博客:https://blog.csdn.net/yongsheng0550