当前位置: 首页 > news >正文

Elasticsearch:如何在 Elastic AI Builder 里使用 DSL 来查询 Elasticsearch

我们知道目前在 Elastic AI Builder 里,我们创建 tools 的时候,没有 DSL 的选项:

目前,它只支持 ES|QL,Index search,Workflow 及 MCP。当针对我们的 Elasticsearch 里的索引进行 DSL 查询时,我们感觉到无能为力,毕竟 DSL 是很多开发者心里最熟悉的查询语言,虽然 ES|QL 是我们最终的目标。那么我们该如何做呢?

答案就是:使用 Elastic Workflow 来完成。

在最近的一篇文章 “使用 TypeScript 创建 Elasticsearch MCP 服务器”,它使用了 MCP 来完成这个 DSL 的查询。当然一个 MCP 的设计不是那么容易的,而且还需要语言设计。在下面,我们使用 Elastic Workflow 来实现同样的功能。

创建索引

我们的源码在地址: https://github.com/liu-xiao-guo/internal_knowkedge_search。我们使用如下的命令来下载源码:

git clone https://github.com/liu-xiao-guo/internal_knowkedge_search

然后,我们需要针对 .env 文件进行配置:

.env

ELASTICSEARCH_ENDPOINT="https://localhost:9200" ELASTICSEARCH_API_KEY="WVRmNU1wMEJsc01KdjlmdDZ0ZEI6Z2dEMU5UZWFPenF0b3RqaF85RWtNQQ==" # Optional: Path to your CA certificate for secure connections. # If left empty, certificate verification will be disabled (not for production). ES_CA_CERTS_PATH=""

注意:我们需要根据自己的配置做相应的修改。

我们使用如下的命令来创建一个索引:

python ingest.py

我们可以在 Kibana 查看已经写入的文档:

创建 workflow

我们可以创建一个 workflow:

name: Knowledge Base Search enabled: true description: | Searches the 'documents' index for knowledge base articles based on a user query triggers: - type: manual inputs: - name: user_query type: string required: true description: knowledge to search for consts: index_name: documents steps: - name: search_knowledge_base type: elasticsearch.request with: method: POST path: /{{consts.index_name}}/_search headers: Content-Type: application/json body: | { "size": 50, "query": { "bool": { "must": [ { "multi_match": { "query": "{{inputs.user_query}}", "fields": ["title^2", "content", "tags"], "fuzziness": "AUTO" } } ], "should": [ { "match_phrase": { "title": { "query": "{{inputs.user_query}}", "boost": 2 } } } ] } }, "highlight": { "fields": { "title": {}, "content": {} } } } - name: generate_summary type: ai.prompt with: temperature: 0.2 prompt: | You are a helpful assistant that answers questions based on provided documents. Summarize the provided search results to answer a question and return citation metadata for the sources used. Question: {{inputs.user_query}} Relevant Documents: {%- for hit in steps.search_knowledge_base.output.hits.hits limit:5 -%} [Document {{ loop.index }}: {{ hit._source.title }}] {{ hit._source.content }} --- {% endfor -%} - name: display_top_results type: console with: message: |- {%- assign total_hits = steps.search_knowledge_base.output.hits.total.value -%} {%- if total_hits == 0 -%} No results found for query: '{{ inputs.user_query }}' {%- else -%} {%- assign summary = steps.generate_summary.output.content -%} {{ summary }} --- Sources Used ({{ total_hits }} found): {% for hit in steps.search_knowledge_base.output.hits.hits limit:5 -%} - [{{ forloop.index }}] {{ hit._source.title }} {% endfor -%} {%- endif -%}

如上所示,我们使用了 DSL 来查询我们的数据库。

Search for documents about authentication methods and role-based access control

创建 tool

我们可以创建一个如下的一个工具:

在 Agent 里使用这个工具:

我们再接下来创建一个 agent,并在这个 agent 里使用这个工具:

很显然,我们非常容易地使用 Elastic Workflow 来创建 DSL query,并在 AI builder 对它进行使用。当然,我们的工具也可以被其它的 MCP 服务所使用:

祝大家学习愉快!

http://www.jsqmd.com/news/561856/

相关文章:

  • 磁盘smart信息
  • 号码品牌认证服务商哪家口碑好?从售后响应速度看服务质量 - 企业服务推荐
  • 告别环境混乱:Python3.9镜像实战教程,独立环境管理如此简单
  • Koikatsu游戏优化补丁:KK-HF_Patch完整指南与安装教程
  • Elasticsearch:如何在 workflow 里调用一个 agent
  • 基于YOLOv11目标检测结果的图像再创作:Wan2.2-I2V-A14B场景重构
  • 智能卡开发实战:ISO7816 APDU命令与响应全解析(附常见错误码对照表)
  • 探索Charticulator:如何通过交互式布局构建实现数据可视化创新
  • LDO芯片数据手册关键参数解析指南
  • 亲测能100%去AI味的论文神器,过审太省心了!
  • PingFangSC字体完整指南:跨平台字体解决方案的3大优势与快速集成方法
  • 文脉定序系统Anaconda环境配置:创建独立的Python开发环境
  • 基于Youtu-Parsing的数据库课程设计:实现文档信息自动入库系统
  • C#重难点知识梳理(从循环语句到面向对象)
  • 免费解锁付费内容:Bypass Paywalls Clean技术深度剖析与实战全解
  • CS Demo Manager深度解析:如何构建专业的Counter-Strike比赛分析系统
  • OSAL定时器从入门到精通:单次、周期、低功耗配置全解析(基于STM32与Z-Stack)
  • GitHub Copilot 默认启用训练之后 企业安全如何应对
  • 2026年羽和心舍官方联系方式公示,专业心理咨询服务合作便捷入口 - 第三方测评
  • 如何用GSE-Advanced-Macro-Compiler构建智能战斗宏系统?完整实战指南
  • 消AI痕迹降重两不误!6款好用免费AI论文工具推荐
  • 3步解锁:让教育资源获取效率提升10倍的开源工具
  • HARMONYOS应用实例243:三角形内角和定理动态验证
  • 单片机入门到实践:51系列开发全攻略
  • 云手机 云端存储 智能运行
  • 【CVPR26-王磊-空天院】GeoViS:面向遥感视觉定位的地理空间奖励视觉搜索
  • 告别单调任务栏:TranslucentTB打造个性化Windows桌面全攻略
  • OpenClaw二次开发指南:修改nanobot镜像适配自定义模型
  • 保姆级教程:Qwen-Image-2512-SDNQ网页版,小白也能生成专业级图片
  • 论文降重还在瞎折腾?这几款实测好用的工具真的省心