codebuddy提供四种生成es查询dsl的路径:一、ide中用自然语言指令+craft模式生成;二、cli命令直出含curl用法的dsl;三、dify+mcp调用实时schema动态构建;四、vs code插件嵌入式生成并一键验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要为Elasticsearch构建准确、可执行的查询DSL,但缺乏对JSON结构、布尔逻辑嵌套或字段映射类型的熟练掌握,则CodeBuddy的AI能力可直接介入生成符合规范的查询语句。以下是多种可行的操作路径:
一、在CodeBuddy IDE中通过自然语言指令生成DSL
该方法利用CodeBuddy IDE内置的Coding Agent与Plan Mode协同解析意图,自动补全索引名、字段类型判断(如text字段用match、keyword字段用term)、并规避已弃用语法(如type、_source_excludes)。系统会基于当前项目上下文(如已连接的ES集群版本、已加载的schema)生成适配性更强的DSL。
1、在CodeBuddy IDE中新建一个空白文件,命名为es_query.json。
2、输入自然语言提示,例如:“为索引logs-2026生成DSL:查找status为200且response_time大于500毫秒的日志,按@timestamp降序排列,只返回message和host字段。”
3、按下Ctrl+Enter触发Craft模式,等待AI输出完整JSON格式DSL。
4、检查生成结果中是否包含"query": {"bool": {"must": [...]}}结构,并确认"range"与"term"使用位置正确。
二、使用CodeBuddy CLI(CodeBuddy Code)命令行直出DSL
该方式适用于DevOps或CI/CD流水线中自动化生成查询语句的场景,支持将自然语言指令转为curl可执行的DSL片段,并自动注入目标集群地址与认证头信息(若已配置MCP Server连接)。
1、在终端中执行codebuddy code "生成Elasticsearch DSL:在product_index中搜索brand字段匹配'Apple'且in_stock为true的商品,排除price为null的文档"。
2、AI将输出标准JSON内容,并在末尾附加一行注释:注意:请将此DSL粘贴至Kibana Dev Tools或配合curl -X POST 'http://localhost:9200/product_index/_search' -H 'Content-Type: application/json' -d '...' 使用。
3、复制输出内容,手动校验"must_not": {"exists": {"field": "price"}}是否被正确嵌套于bool内层。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
三、通过Dify + elasticsearch-mcp-server编排调用生成DSL
当需结合实时集群状态(如索引是否存在、mapping字段类型是否变更)动态生成DSL时,该路径依赖MCP协议桥接,使LLM能安全调用get_mapping等元数据接口,再据此构造合法查询,避免因字段类型误判导致match在keyword字段上失效。
1、在Dify工作流中添加“Elasticsearch Schema Inspector”工具节点,输入目标索引名user_behavior。
2、将返回的mapping JSON传入CodeBuddy作为上下文,追加指令:“基于以上mapping,生成DSL:检索event_type.keyword为'click'且ts在2026-05-01T00:00:00Z至2026-05-20T23:59:59Z之间的记录。”
3、AI识别event_type.keyword为精确匹配字段,自动选用term而非match,并在range子句中正确设置format为strict_date_optional_time。
4、最终输出DSL中"term": {"event_type.keyword": "click"}与"range": {"ts": {"gte": "...", "lte": "...", "format": "strict_date_optional_time"}}并存于同一must数组。
四、在VS Code插件中嵌入式生成并验证DSL
该方法适合日常开发调试,利用CodeBuddy插件与本地Kibana Dev Tools联动,在编辑器内完成“写提示→生成→一键发送至ES→查看响应”的闭环,无需切换窗口,且支持高亮显示语法错误位置。
1、在VS Code中打开任意.json文件,在光标处右键选择“CodeBuddy: Generate Elasticsearch DSL”。
2、在弹出的输入框中键入:“查出所有tags数组中包含urgent或bug的文档,要求updated_at最近7天内,且priority不等于low。”
3、AI生成含should子句的bool查询,并自动添加"minimum_should_match": 1;对priority使用must_not + term组合。
4、点击插件侧边栏中的“Send to Elasticsearch”按钮,若返回parse_exception,插件将高亮标出"minimum_should_match"应置于bool顶层而非should内部。










