在 .NET 6 中使用 Elastic.Clients.Elasticsearch 库进行手动映射

问题描述 投票:0回答:1

我想使用

Elastic.Clients.Elasticsearch
库在我的 .NET Core 6 项目中进行流畅的映射,但我在文档中找不到任何内容。

NEST 库中的用法:

var createIndexResponse = _client.Indices.Create("myindex", c => c
     .Map<Company>(m => m
         .Properties(ps => ps
             .Text(s => s
                 .Name(n => n.Name)
             )
             .Object<Employee>(o => o
                 .Name(n => n.Employees)
                 .Properties(eps => eps
                     .Text(s => s
                         .Name(e => e.FirstName)
                     )
                     .Text(s => s
                         .Name(e => e.LastName)
                     )
                     .Number(n => n
                         .Name(e => e.Salary)
                         .Type(NumberType.Integer)
                     )
                 )
             )
         )
     )
 );

有没有办法将上面的示例与

Elastic.Clients.Elasticsearch
库一起使用?这个库中没有名为
Map
的方法。

或者我可以采取什么方法来做到这一点?我应该回到 NEST 图书馆吗?

elasticsearch .net-core amazon-emr nest elasticsearch-8
1个回答
0
投票

老问题,但你应该使用 v8 的

Mappings
方法。

var response = await client.Indices.CreateAsync<Person>(Index, c => c
    .Mappings(map => map
        .Properties(p => p
            .Text(t => t.Id, c => c
                .Fields(f => f
                    .Keyword(k => k, cc => cc
                        .IgnoreAbove(256)
                    )
                )
            )
        )
        .Properties(p => p
            .Text(t => t.City, c => c
                .Fields(f => f
                    .Keyword(k => k, cc => cc
                        .IgnoreAbove(256)
                    )
                )
            )      
        )
    )
);
© www.soinside.com 2019 - 2024. All rights reserved.