如何使用NEST为Elasticsearch指定索引?

Air*_*475 0 c# elasticsearch nest elasticsearch-net

如果我运行下面的代码,它将在所有索引上创建一个映射,我不希望这样做。我找不到仅指定所需索引的文档。
如何指定将此映射应用于哪个索引?

var client = new ElasticClient();
var response = client.Map<Company>(m => m
    .Properties(props => props
        .Number(n => n
            .Name(p => p.ID)
            .Type(NumberType.Integer)
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

Rus*_*Cam 5

添加.Index()到放置映射描述符

var response = client.Map<Company>(m => m
    .Index("index-name")
    .Properties(props => props
        .Number(n => n
            .Name(p => p.ID)
            .Type(NumberType.Integer)
        )
    )
);
Run Code Online (Sandbox Code Playgroud)

这会将映射放入现有索引中。如果尚不存在索引,则可以在一个请求中创建索引并为其定义映射。例如

var createIndexResponse = client.CreateIndex("index-name", c => c
    // settings for the index
    .Settings(s => s
        .NumberOfShards(3)
        .NumberOfReplicas(1)
        .RefreshInterval("5s")
    )
    // mappings for the index
    .Mappings(m => m
        .Map<Company>(mc => mc
            .Properties(props => props
                .Number(n => n
                    .Name(p => p.ID)
                    .Type(NumberType.Integer)
                )
            )
        )
    )
);
Run Code Online (Sandbox Code Playgroud)