0

我们的 C# WebAPI 应用程序使用 ElasticSearch 数据库。我们正在使用 NEST2 来访问数据库。

代码中的所有 NEST2 查询都指定了数据库索引名称,这里是一个示例:

public TestQuery[] GetAllDocuments()
{
    var readRecords = ec.Search<TestDocument>(s => s
        .Index("my-index-name")
        .Query(q => q.
            QueryString(qs => qs.Query("*")))).Documents;

    return readRecords.ToArray();
}

有时我们忘记在查询中指定索引名称......问题不会立即显现出来,因为 API 按预期工作并且一切都很好......只有当我们添加另一个包含一些类似文档的索引时,我们才会看到问题

是否可以在 NEST2 初始化后一次性指定索引名称?这样做我将避免记住在每个查询中插入它的负担

4

2 回答 2

2

您正在寻找.DefaultIndex关于ConnectionSettings.

var settings = new ConnectionSettings()
    .DefaultIndex("defaultindex");

希望能帮助到你。

于 2016-05-31T18:50:38.057 回答
1

你应该看看别名: 索引别名

因此,当您有一个包含类似文档的新索引时,您可以在创建它后添加一个别名,并在索引名称的查询中指定别名。通过这种方式,您可以使用相同的名称查询 1 到多个索引。希望能帮助到你!如果您需要更多信息,请写评论。

于 2016-05-31T15:45:23.367 回答