本文へ移動
cccskills
無料GitHub で公開

nest库代码迁移_1x到7x

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

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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代码替换

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

このスキルの問題を報告する