1

我希望能够使用 NEST2 客户端设置某种映射,以便将不同的类型自动放入定义的索引中。这可能吗?

我试图映射这样的类型:

client.Map<A>(m => m.Index("index1"));
client.Map<B>(m => m.Index("index2"));

然后像这样索引它们:

client.Index(new SomethingThatGoesToTheDefaultIndex());
client.Index(new A());//Should end up in index1
client.Index(new B());//Should end up in index2

但一切都以默认索引而不是设置索引结束。每次存储数据时是否需要提供所需的索引,或者是否可以为每种类型设置定义的索引?

4

1 回答 1

2

.Index(..)您可以在方法中的第二个参数的帮助下传递索引名称。

像这样:

client.Index(new A(), descriptor => descriptor.Index("index1"));
client.Index(new B(), descriptor => descriptor.Index("index2"));

更新

MapDefaultTypeIndices将帮助您指定类型的默认索引名称。

var settings = new ConnectionSettings() 
    .MapDefaultTypeIndices(dictionary =>
    {
        dictionary.Add(typeof (A), "index1");
        dictionary.Add(typeof (B), "index2");
    });

var client = new ElasticClient(settings);

希望能帮助到你。

于 2016-03-02T15:18:34.560 回答