首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure搜索服务删除索引

Azure搜索服务删除索引
EN

Stack Overflow用户
提问于 2018-09-10 00:57:13
回答 1查看 757关注 0票数 0

我对Azure搜索服务非常陌生,我正在跟踪我在网上找到的指南。在其中一个指南中,它们有这样的方法:

代码语言:javascript
复制
static void Main(string[] args)
{
    IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
    IConfigurationRoot configuration = builder.Build();

    SearchServiceClient serviceClient = CreateSearchServiceClient(configuration);
    var test = serviceClient.Indexes.GetClient("testindex");

    Console.WriteLine("{0}", "Deleting index...\n");
    DeleteHotelsIndexIfExists(serviceClient);

    Console.WriteLine("{0}", "Creating index...\n");
    CreateHotelsIndex(serviceClient);

    ISearchIndexClient indexClient = serviceClient.Indexes.GetClient("hotels");

    Console.WriteLine("{0}", "Uploading documents...\n");
    UploadDocuments(indexClient);

    ISearchIndexClient indexClientForQueries = CreateSearchIndexClient(configuration);

    RunQueries(indexClientForQueries);

    Console.WriteLine("{0}", "Complete.  Press any key to end application...\n");
    Console.ReadKey();
}

因此,上面的想法是删除一个索引,如果它存在,然后创建一个新的索引。然后生成和上传文档,然后运行搜索。现在,这一切对我来说都是合理的,但有一件事困扰着我,那就是删除索引部分。基本上,在我看来,他们建议永远删除索引,然后再重新创建它。这让我很担心。

如果这是一个活动索引,那么我就删除它,哪怕只是一秒,这不意味着调用此索引搜索的服务将失败吗?我关心的另一件事是,在大多数情况下,我的数据是90%相同的,我会有一些更新和更新的记录,也许很少被删除。但是,如果我的数据库有一百万条记录,那么删除它,然后重新创建它似乎是愚蠢的。

有没有更好的方法。是否有一种方法只更新索引中的文档,而不是删除它?

所以我想这是一个两部分的问题。1.如果删除索引,是否会在新建索引时停止搜索功能? 2.是否有比删除索引更好的方法?如果有更新的方法,那么如何处理文档结构已经更改的场景,例如添加了一个新字段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 05:20:31

该示例旨在演示如何通过.NET SDK调用Azure搜索。不应将其作为最佳做法的范例。

要回答你的具体问题:

  1. 删除索引将立即导致针对该索引的所有请求失败。您不应该删除生产中的活动索引。而且,索引还没有备份/还原功能,所以即使索引没有活动,也不应该删除它,除非您可以从其他地方恢复数据。
  2. 如果需要更新文档而不更新索引架构,则可以通过索引API的“合并”操作来实现这一点。有一个教程介绍了这个这里。如果您需要添加一个新字段,您可以在不删除和重新创建索引的情况下这样做--只需使用.NET SDK的一个.NET方法即可。默认情况下,此操作不会导致任何索引停机时间。但是,如果您需要删除、重命名或更改现有字段的类型,或者在字段上启用新的行为(例如--使其成为可修复的、可排序的或建议器的一部分),则需要创建新的索引。因此,建议应用程序在索引名称之上实现一个额外的间接层,以便在需要时可以交换和重新构建索引。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52249823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档