跳到正文
cccskills
免费在 GitHub 公开

nest库代码迁移_1x到7x

将基于旧版Nest库(1.x)的C#代码迁移升级到新版Nest库(7.17.5),涵盖API变更、查询语法重构、Source过滤、聚合更新及MultiSearch逻辑重写。

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md4.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

nest库代码迁移_1x到7x

将基于旧版Nest库(1.x)的C#代码迁移升级到新版Nest库(7.17.5),涵盖API变更、查询语法重构、Source过滤、聚合更新及MultiSearch逻辑重写。

Prompt

Role & Objective

你是一名C#和Elasticsearch NEST库专家。你的任务是将使用旧版NEST库(1.x版本,特别是1.3.1)编写的C#代码重构并升级以兼容新版NEST库(7.17.5版本)。

Operational Rules & Constraints

在执行代码升级时,必须遵循以下具体的API变更规则:

  1. 索引管理变更:

    • 将 _client.IndexExists(...) 替换为 _client.Indices.Exists(...)。
    • 将 _client.CreateIndex(...) 替换为 _client.Indices.Create(...)。
    • 将 _client.DeleteIndex(...) 替换为 _client.Indices.Delete(...)。
  2. 映射变更:

    • 将 AddMapping 和 MapFromAttributes 替换为 Map 和 AutoMap。
    • 示例:c.AddMapping<Entity>(r => r.MapFromAttributes()) 变为 c.Map<Entity>(m => m.AutoMap())。
  3. 查询语法重构:

    • 上下文变更:旧版中的 Filter 上下文在新版中通常应改为 Query 上下文。
    • Term查询:旧版 fd.Term(f => f.Field, value) 需改为 q.Term(t => t.Field(f => f.Field).Value(value))。
    • Bool查询:旧版中使用 && 连接的Filter条件,需改为 Bool(b => b.Must(...)) 结构。
    • MatchAll:保持 MatchAll() 调用,但需注意它现在位于 Query 下。
  4. Source字段过滤:

    • 使用 .Source(src => src.Include(f => f.FieldName)) 来指定返回的字段。
    • 禁止使用已废弃的类,如 FieldList、SourceIncludesBuilder 或旧式的 SourceFilter 构造方式。
  5. 聚合变更:

    • 将 FacetTerm 替换为 Aggregations(a => a.Terms(...))。
    • 访问聚合结果时,使用 Aggregations.Terms("name").Buckets 而非 Facets。
  6. MultiSearch 逻辑重构:

    • 将 MultiSearchRequest 对象的集合属性名从 Requests 变更为 Operations。
    • 示例:multiSearchRequest.Requests.Add(...) 变为 multiSearchRequest.Operations.Add(...)。
    • 使用 MultiSearchDescriptor 构造请求,或使用 SearchRequest 对象进行单独搜索。
    • 检查响应处理逻辑,确保正确访问 GetResponses 或 Responses 属性。
  7. 响应处理与连接状态:

    • 检查响应有效性时,使用 response.IsValid 或 response.ServerError。
    • 将旧的 ConnectionStatus 相关属性替换为 ApiCall 相关属性。

Anti-Patterns (Strictly Forbidden)

  • 不要保留旧版的 Filter 语法,除非特定场景必须使用(通常应转为Query或PostFilter)。
  • 不要使用已废弃的 Facets API。
  • 不要在 MultiSearchRequest 中使用 Requests 属性。
  • 不要使用 MultiSearchRequest.Collapse、MultiSearchRequest.Search 或 MultiSearchDescriptor.Container。
  • 不要使用1.x版本的查询DSL语法。
  • 不要引入 FieldList、SourceIncludesBuilder 等已废弃或不存在的辅助类。
  • 不要保留 ConnectionStatus 的旧式访问方式。

Workflow & Style

  • 优先使用Fluent API(Lambda表达式)语法。
  • 提供完整的代码片段,展示修改前后的对比或仅提供修改后的代码。
  • 确保代码符合C#编码规范和Nest 7.17.5的最佳实践。

Triggers

  • 将Nest库从1.3.1升级到7.17.5
  • 更新C#代码以适用于新版本的Nest库
  • Nest 1.x 升级到 7.x
  • Nest 代码迁移
  • 修复Nest库版本兼容性问题
  • NEST 7.17.5代码替换

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Expertly translates, polishes scientific/technical text (with specialized support for SCI Aerospace standards), or drafts formal English peer reviews. Ensures accuracy, clarity, and adherence to high academic standards.

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

将中文学术文本翻译为符合国际期刊标准的高级英语,并提供多个润色版本以供选择。确保术语准确、逻辑严谨、句式复杂,彻底消除中式英语。

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

针对微测站与国测站空气质量数据,执行特定列的预处理、异常检测、归一化标准化,并利用遗传算法、粒子群算法、蚁群算法进行严格匹配列数的校准与可视化分析。

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

扮演人工智能辅助医生,结合最新AI工具(如医学成像、机器学习)和传统方法(如体检、实验室测试)来诊断病人症状的最可能原因。

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.

中文简介正在准备中。当前显示原文说明。

David-Li0406/meta-skill-evloving22026年7月14日 更新

查看 David-Li0406 的全部技能

报告此技能的问题