我们的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初始化后是否可以为所有索引名称指定一次?这样做我将避免记住将其插入每个查询的负担
答案 0 :(得分:2)
您正在寻找.DefaultIndex
上的ConnectionSettings
方法。
var settings = new ConnectionSettings()
.DefaultIndex("defaultindex");
希望它有所帮助。
答案 1 :(得分:1)
你应该看一下别名: Index Alias
因此,如果您有一个包含类似文档的新索引,则可以在创建后添加一个别名,并在索引名称的查询中指定别名。通过这种方式,您可以使用相同的名称查询1到多个索引。 希望能帮助到你!如果您需要更多信息,请写评论。